【发布时间】:2014-04-13 20:20:08
【问题描述】:
我遇到了这个错误,但在任何地方都没有找到示例。在此记录以供参考。
问题在于,在下面的示例中调用o.callback() 时,x 的值在定义和执行回调之间发生了变化。
p = {
f: function () { x = 'p.f() local'; }
};
o = {
f: function () {
x = 'o.f() local';
this.callback = function () { console.log(x); };
}
};
o.f();
p.f();
o.callback.apply();
这里的输出是:
p.f() local
正如我所料:
o.f() local
更新 这是一个 jsfiddle:http://jsfiddle.net/elplatt/kzS5A/1/
【问题讨论】:
标签: javascript callback scope closures