我有这样一段代码从自参照的成员变量调用嵌套函数
var f = function() {
this.x = 100;
(
function() {
x = 20;
}
)();
};
var a = new f;
console.log(a.x);
我想知道为什么在全局范围内创建一个新的变量x,并且输出是100,而不是20。 如果我写
var x = 100;
嵌套函数改变相同的x值。 似乎经由
this.x = 100
地方函数f的范围之外X创建X。如果是这样的话,它在哪里定义?它如何被访问?
编辑:固定一个错字:的console.log(a.x)代替的console.log(x)的
很好的解释,并且还教我call()方法! – kaustubh 2012-02-12 13:31:58