鉴于此代码:的JavaScript变种的知名度
function MyClass() {
var v = '1';
this.hi = function() {
console.log('Value of V is ' + v);
var v = '2';
console.log('Value of V is ' + v);
delete(v);
console.log('Value of V is ' + v);
}
}
当我做这样的事情:
z = new MyClass();
z.hi();
结果我得到的是:
Value of V is undefined
Value of V is 2
Value of V is 2
我想解释的是为什么结果就是这样。
为什么V的不确定的(我的理解是 - 它可能不是正确的 - 是在JS它的所有定义时,不运行时,这样对定义的函数有它自己的变量“ v“,但它没有在第一行定义)。
为什么V不被删除?保持相同的价值?
如何从“单层”访问值为“1”的“v”?
我知道如果在“hi”函数中使用不同的变量名称,我将能够在函数中“看到”值为“1”的变量“v”。所以我隐藏了原来的那个,但是仍然留下了问题#3 - 我如何访问“顶级”?
谢谢!
'delete'只适用于对象属性。 – Jerry 2016-05-03 14:15:49