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