我正在努力完善我的Javascript知识。这看起来很简单,但令我感到困惑。
我需要将方法名称存储为变量。将我的测试用例缩小到可能的最小尺寸,结果如下:
var someobj = {
someMethod: function() {
console.log('woo');
},
somevariable: this.someMethod
}
没有回调,一切都很简单。
console.log(someobj.someMethod);
返回:
[Function]
大。但是:
console.log(someobj.somevariable)
返回:
undefined
我原以为它会返回'[功能]'。这是为什么?
感谢。
答案 0 :(得分:1)
以JSON格式声明对象时,没有this
个关键字。 (嗯,有,但我引用外部上下文的this
,例如全局上下文中的window
)您无法在此类声明中访问当前对象。
因此,您需要在之后设置该变量,如下所示:
var someobj = {
someMethod: function() {
console.log('woo');
}
}
someobj.somevariable = someobj.someMethod;