如何在javascript中将变量分配给对象内部的另一个变量

如何在javascript中将变量分配给对象内部的另一个变量,javascript,Javascript,这使得b的值未定义。正确的方法是什么。您可以使用简单的方法在同一对象的新属性中获取该值,因为JavaScript的工作方式与您期望的不同 myObj变种={ a:10 }; myObj.b=myObj.a; console.log'b:',myObj.b这是当前未定义的全局对象。您可以创建函数闭包,以确保这是您想要的。或者,您可以在该对象外部创建一个globar变量,并将该对象的属性分配给它 但我不确定你想完成什么 如果需要示例,可以执行以下操作: myObj={ a: 10, b: this

这使得b的值未定义。正确的方法是什么。

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

myObj变种={ a:10 }; myObj.b=myObj.a; console.log'b:',myObj.b这是当前未定义的全局对象。您可以创建函数闭包,以确保这是您想要的。或者,您可以在该对象外部创建一个globar变量,并将该对象的属性分配给它

但我不确定你想完成什么

如果需要示例,可以执行以下操作:

myObj={
a: 10,
b: this.a
}
console.log('b :',myObj.b)
然后,您可以键入var x=new Person来创建一个人


无论如何,这里发生的事情是,我创建了一个javascript闭包aka函数,它具有this属性。否则这将是未定义的,除非您在浏览器上,在这种情况下,它将是窗口,或者,如果您在节点上,它将是全局对象。

添加一个构造函数或另一个函数来设置它。b=this.a

尝试这样做

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

查看此处

如果您真的想在刚刚创建的同一对象中指定一个引用另一个属性的属性,您可以从匿名函数构造函数创建一个对象,如下所示:

myObj={
a: 10,
b: a
}



var myObj={ 
a: 10,
b:this.c,
c:function() {
this.b=this.a;
     return this.b;
}
然后你可以这样引用:

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

为什么不将共享值分配给对象外部的变量,并将其分配给这两个变量?您不能这样做,因为在}结束之前不存在共享值。发布完整的代码,当然还有其他方法可以完成您正在尝试的操作。问题清楚地说,在对象内部,这不是您在发布之前自己尝试过的答案?更正此答案,我将删除否决票。好的,尝试在不使用新关键字的情况下实例化函数,看看您是否可以记录object.a或object.b。无论如何,问题是如何指定一个属性,该属性引用正在声明的同一对象的另一个属性。函数SetValues{var b=null;var myObj={a:10,b:this.c,c:function{this.b=this.a;//alerta:+myObj.a;alertin函数b:+myObj.b;返回this.b;}警报输出侧b:+myObj.c;}
console.log(object.a) // 3
console.log(object.b) // 3