此 Javascript 代码返回“Undefined”

This Javascript code returns 'Undefined'

本文关键字:Undefined 返回 Javascript 代码      更新时间:2023-09-26

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

我需要一点帮助

 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);