如何在javascript中将变量赋值给对象内的另一个变量

时间:2018-02-21 11:27:25

标签: javascript

myObj={
a: 10,
b: this.a
}
console.log('b :',myObj.b)

这将b的值赋予undefined。这样做的正确方法是什么。

5 个答案:

答案 0 :(得分:3)

您可以使用简单的方法在同一个对象的新属性中获取该值,因为JavaScript不像您期望的那样工作,



var myObj={
   a: 10
};
myObj.b = myObj.a;
console.log('b :',myObj.b)




答案 1 :(得分:0)

您的this当前是全局对象,undefined。您可以创建一个函数(闭包)以确保您的this符合您的要求。或者,您可以在该对象外部创建一个全局栏var,并为其指定该对象的属性。

我不确定你想要完成什么。

如果你想要一个例子,你可以这样做:

function Person() {
   this.a = 10;
   this.b = this.a; // is this what you want? (why?)
}

然后,您可以创建Person输入var x = new Person()

无论如何,这里发生了什么,我创建了一个javascript闭包(aka函数),它具有this属性。或者this将是undefined(除非您使用浏览器,否则它将是window,或者,如果您是node },它将是全局对象)。

答案 2 :(得分:0)

添加构造函数或设置this.b = this.a

的其他函数

答案 3 :(得分:-1)

尝试这样

myObj={
a: 10,
b: a
}



var myObj={ 
a: 10,
b:this.c,
c:function() {
this.b=this.a;
     return this.b;
}

看这里http://jsfiddle.net/36vfy4yu/

答案 4 :(得分:-1)

如果你真的想要一个属性引用另一个属性INSIDE你正在创建的同一个对象,你可以从匿名函数构造函数创建一个对象,如下所示:

var object = new (function() {
   this.a = 3;
   this.b = this.a;
})()

然后你可以像这样引用:

console.log(object.a) // 3
console.log(object.b) // 3