myObj={
a: 10,
b: this.a
}
console.log('b :',myObj.b)
这将b的值赋予undefined
。这样做的正确方法是什么。
答案 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;
}
答案 4 :(得分:-1)
如果你真的想要一个属性引用另一个属性INSIDE你正在创建的同一个对象,你可以从匿名函数构造函数创建一个对象,如下所示:
var object = new (function() {
this.a = 3;
this.b = this.a;
})()
然后你可以像这样引用:
console.log(object.a) // 3
console.log(object.b) // 3