1

可能重复:
函数参数传递和返回

我需要一点帮助

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

执行时此代码段返回“未定义”有人可以解释为什么会这样吗?

4

1 回答 1

0

您需要使用正确的调用范围。将 foo 显式设置为范围会给出预期的结果。

var foo = {
    bar: function () {
        return this.baz;
    },
    baz: 1
};
(function () {
    return arguments[0].call(foo);
})(foo.bar);
于 2012-07-04T08:49:40.103 回答