说我有
myfunc({
var1: 1,
var2: 2,
})
如果我想拥有一个使用当前未命名对象的值,我该怎么做?
例如,如果我想要
myfunc({
var1: 1,
var2: 2,
var3: this.var1 + this.var2
})
显然这不起作用。
正确的语法是什么?
答案 0 :(得分:18)
你可以让var3成为一个函数,调用它将允许你使用'this':
x= {
v1:4,
v2:5,
v3:function(){return this.v1 + this.v2;}
};
alert(x.v3());
答案 1 :(得分:5)
不幸的是,这是不可能的。在构造对象文字时,在评估整个文字之前,不存在对该对象的外部引用。在此阶段使用this
的唯一方法是使用构造函数:
function MyObject() {
this.var1 = 1;
this.var2 = 2;
this.var3 = this.var1 + this.var2;
}
myfunc(new MyObject());
答案 2 :(得分:3)
你不能用你正在使用的符号来做。在这种情况下,对象文字没有任何自己的概念。