从对象属性定义中调用对象方法

Ian*_*Ian 4 javascript

我试图从对象(相同的对象)属性定义调用对象方法无济于事.

var objectName = {
     method   :   function() {
          return "boop";
     },
     property :   this.method()
};
Run Code Online (Sandbox Code Playgroud)

在这个例子中,我想将objectName.method("boop")的返回值赋给objectName.property.

我已经试过objectName.method(),method(),window.objectName.method(),与所有这些的括号标记变种一起为好,当然.this["method"],没有运气.

Sea*_*sey 6

初始化时this不会引用持有属性的对象method(尚未初始化),而是引用curent上下文 - 因为它没有method属性,所以你会得到一个TypeError.

如果它是getter您想要的自定义,那么您可能会考虑在javascript中使用getter和setter - 在ES5之前ECMAscript不支持它们,但许多引擎仍然支持它们.