Javascript 对象文字中的引用变量?
说我有Javascript 对象文字中的引用变量?,javascript,object-literal,Javascript,Object Literal,说我有 myfunc({ var1: 1, var2: 2, }) 如果我希望有一个使用当前未命名对象的值,我将如何做到这一点 如果我愿意的话 myfunc({ var1: 1, var2: 2, var3: this.var1 + this.var2 }) 显然,这是行不通的 正确的语法是什么?不幸的是,这是不可能的。在构造对象文字时,在计算整个文字之前,不存在对该对象的外部引用。在此阶段使用此的唯一方法是使用构造函数: function MyObject() {
myfunc({
var1: 1,
var2: 2,
})
如果我希望有一个使用当前未命名对象的值,我将如何做到这一点
如果我愿意的话
myfunc({
var1: 1,
var2: 2,
var3: this.var1 + this.var2
})
显然,这是行不通的
正确的语法是什么?不幸的是,这是不可能的。在构造对象文字时,在计算整个文字之前,不存在对该对象的外部引用。在此阶段使用此的唯一方法是使用构造函数:
function MyObject() {
this.var1 = 1;
this.var2 = 2;
this.var3 = this.var1 + this.var2;
}
myfunc(new MyObject());
你不能用你正在使用的符号来做。在此上下文中,对象文字本身没有任何概念 您可以将var3设置为一个函数,调用它将允许您使用“this”:
x= {
v1:4,
v2:5,
v3:function(){return this.v1 + this.v2;}
};
alert(x.v3());
我认为这正是OP想要的。问题是语法不同于x.v1和x.v3()。如果您想要相同的语法,可以将v1和v2也更改为函数