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