使用方法名称作为实例变量的值

时间:2012-01-29 12:59:06

标签: javascript

我正在努力完善我的Javascript知识。这看起来很简单,但令我感到困惑。

我需要将方法名称存储为变量。将我的测试用例缩小到可能的最小尺寸,结果如下:

var someobj = { 
  someMethod: function() {
      console.log('woo');
  }, 
  somevariable: this.someMethod
}

没有回调,一切都很简单。

console.log(someobj.someMethod);

返回:

[Function]

大。但是:

console.log(someobj.somevariable)

返回:

undefined

我原以为它会返回'[功能]'。这是为什么?

感谢。

1 个答案:

答案 0 :(得分:1)

以JSON格式声明对象时,没有this个关键字。 (嗯,有,但我引用外部上下文的this,例如全局上下文中的window)您无法在此类声明中访问当前对象。 因此,您需要在之后设置该变量,如下所示:

var someobj = { 
  someMethod: function() {
      console.log('woo');
  } 
}
someobj.somevariable = someobj.someMethod;