javascript - 此 JavaScript 代码返回 'Undefined'

标签 javascript closures

Possible Duplicate:
Function Arguments Passing and Return

我需要一点帮助

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

关于javascript - 此 JavaScript 代码返回 'Undefined',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11325395/

相关文章:

javascript - 如何使 Express 中的模块(例如 bcrypt)全局可用?

javascript - 如何计算某物在我的对象中出现的次数?

swift - 为什么便利的初始化器不能在尾随闭包的情况下调用指定的初始化器?

javascript - 在套接字消息上调用函数 (socket.io/node.js)

ruby - 如何使用 method_missing 动态声明方法?

swift - 如何在 Swift 中声明一个作为属性名称的函数参数

javascript - setState() 不触发重新渲染

javascript - 使用 Chart.js 中的 addData() 方法向折线图添加数据

javascript - 通过拖动到 Cappuccino 中的浏览器窗口来上传文件

javascript - 在函数中使用查询到的json数据