我正在尝试完善我的 Javascript 知识。这看起来是一件很简单的事情,但却让我感到困惑。
我需要将方法名称存储为变量。将我的测试用例减少到尽可能小的大小,结果如下:
var someobj = {
someMethod: function() {
console.log('woo');
},
somevariable: this.someMethod
}
没有回调,一切都很好很简单。
console.log(someobj.someMethod);
返回:
[Function]
太棒了。但是:
console.log(someobj.somevariable)
返回:
undefined
我期待它返回“[Function]”。这是为什么?
谢谢。
最佳答案
当以 JSON 格式声明对象时,没有 this
关键字。 (好吧,有,但 i 指的是外部上下文的 this
,例如全局上下文中的 window
)您不能在这样的声明中访问当前对象。
因此,您之后需要设置该变量,如下所示:
var someobj = {
someMethod: function() {
console.log('woo');
}
}
someobj.somevariable = someobj.someMethod;
关于javascript - 使用方法名称作为实例变量的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9053336/