此Javascript代码返回';未定义';
可能重复:此Javascript代码返回';未定义';,javascript,closures,Javascript,Closures,可能重复: 我需要一点帮助 var foo = { bar: function () { return this.baz; }, baz: 1 }; (function () { return typeof arguments[0](); })(foo.bar); 执行此代码段时返回“未定义” 有人能解释一下为什么会这样吗?您需要使用正确的通话范围。显式地将foo设置为作用域会得到预期的结果 var foo = { b
我需要一点帮助
var foo = {
bar: function () {
return this.baz;
},
baz: 1
};
(function () {
return typeof arguments[0]();
})(foo.bar);
执行此代码段时返回“未定义”
有人能解释一下为什么会这样吗?您需要使用正确的通话范围。显式地将foo设置为作用域会得到预期的结果
var foo = {
bar: function () {
return this.baz;
},
baz: 1
};
(function () {
return arguments[0].call(foo);
})(foo.bar);
嗯,我以前看过这个片段,所以…@leppie和谷歌一起我发现:P令人难过的是,被接受的答案是错误的:X@Esailija:那甚至不是我记得的那一个!那是一两个星期前的事了。@Esailija-好发现!完全相同。即使副本中接受的答案不正确,也应关闭此问题。@jamesalardice问题中的代码实际上来自问题6