【发布时间】:2012-02-12 09:27:24
【问题描述】:
我有这段代码
var f = function() {
this.x = 100;
(
function() {
x = 20;
}
)();
};
var a = new f;
console.log(a.x);
我想知道为什么在全局范围内创建了一个新变量 x,并且输出是 100,而不是 20。 如果我改写
变量 x = 100;
嵌套函数改变了相同的 x 值。 似乎通过
创建 xthis.x = 100
将 x 置于函数 f 的范围之外。如果是这样,它在哪里定义?以及如何访问?
编辑:修正了一个错字:console.log(a.x) 而不是 console.log(x)
【问题讨论】:
标签: javascript nested-function