是否可以使用当前对象的属性为decalred为对象属性赋值?
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;
答案 0 :(得分:1)
一个简单的控制台日志应该向您显示代码的工作原理,但是会给出NaN
。将代码修改为以下示例并运行后:
var myObject = new Object({
a: 1,
b: 2,
c: console.log(this.a + this.b)
});
myObject.c;
结果是:NaN
为什么?当您创建myObject
this
时绑定到document
对象,该对象显然没有属性a
和b
。也许这对您有用:< / p>
var myObject = new Object({
a: 1,
b: 2,
c: function () {
return this.a + this.b;
}
});
myObject.c();
查看以下问题:stackoverflow.com/questions/133973/了解有关javascript对象文字中this
的更多信息