此Javascript代码返回'Undefined'

时间:2012-07-04 08:36:36

标签: javascript closures

  

可能重复:
  Function Arguments Passing and Return

我需要一些帮助

 var foo = {
     bar: function () {
         return this.baz;
     },
     baz: 1
 };
 (function () {
     return typeof arguments[0]();
 })(foo.bar);

执行此代码段时返回'undefined' 有人可以解释一下为什么会这样吗?

1 个答案:

答案 0 :(得分:0)

您需要使用正确的范围进行通话。显式设置foo作为范围给出了预期的结果。

var foo = {
    bar: function () {
        return this.baz;
    },
    baz: 1
};
(function () {
    return arguments[0].call(foo);
})(foo.bar);