0

是否可以使用正在贴花的当前对象的属性为对象属性赋值?

var myObject = new Object({ 
    a: 1, 
    b: 2, 
    c: this.a + this.b // is this possible ? ( or even myObject.a + myObject.c)
});

我知道我可以将其声明如下,但可以如上吗?

myObject.c = myObject.a + myObject + b;
4

1 回答 1

1

一个简单的控制台日志应该会向您展示为什么您的代码有效但给出了NaN. 将代码修改为以下示例并运行后:

var myObject = new Object({
     a: 1,
     b: 2,
     c: console.log(this.a + this.b)
});
myObject.c;

结果是:NaN为什么?当您创建myObject this的对象绑定到document显然没有属性ab. 也许这对您有用:

var myObject = new Object({
     a: 1,
     b: 2,
     c: function () {
         return this.a + this.b;
     }
});
myObject.c();

检查这个问题:stackoverflow.com/questions/133973/以了解更多关于thisjavascript对象文字的信息

于 2013-05-22T13:15:14.317 回答