Hai*_*ood 14 javascript object-literal
说我有
myfunc({
var1: 1,
var2: 2,
})
Run Code Online (Sandbox Code Playgroud)
如果我想拥有一个使用当前未命名对象的值,我该怎么做?
如果我想要的话
myfunc({
var1: 1,
var2: 2,
var3: this.var1 + this.var2
})
Run Code Online (Sandbox Code Playgroud)
显然这不起作用.
正确的语法是什么?
dav*_*vid 20
你可以让var3成为一个函数,调用它将允许你使用'this':
x= {
v1:4,
v2:5,
v3:function(){return this.v1 + this.v2;}
};
alert(x.v3());
Run Code Online (Sandbox Code Playgroud)
不幸的是,这是不可能的.在构造对象文字时,在评估整个文字之前,不存在对该对象的外部引用.this在这个阶段使用的唯一方法是使用构造函数:
function MyObject() {
this.var1 = 1;
this.var2 = 2;
this.var3 = this.var1 + this.var2;
}
myfunc(new MyObject());
Run Code Online (Sandbox Code Playgroud)