刚刚创建对象的javascript访问属性
我想使用刚刚使用object literal创建的同一对象的另一个属性初始化该对象的属性:刚刚创建对象的javascript访问属性,javascript,object,Javascript,Object,我想使用刚刚使用object literal创建的同一对象的另一个属性初始化该对象的属性: var result = { a : 1, b : a }; 结果应该是 { a:1, b:1 } 有没有办法不用先创建对象就可以做到这一点?使用某种方法?您可以通过函数来实现 var结果={ 答:1,, getResult:function(){ 返回{ 答:1,, b:这个 } } }; console.log(result.getResult())您可以使用Ob
var result = {
a : 1,
b : a
};
结果应该是
{
a:1,
b:1
}
有没有办法不用先创建对象就可以做到这一点?使用某种方法?您可以通过函数来实现
var结果={
答:1,,
getResult:function(){
返回{
答:1,,
b:这个
}
}
};
console.log(result.getResult())
您可以使用Object.defineProperty
获得特定属性的getter
var myObject={};
Object.defineProperty(
我的对象,
“b”{
get:function(){
还这个
}
}
);
myObject.a=1;
log(myObject.b)
可以先将属性存储在变量中
var x=1;
var结果={
a:x,
b:x
};
控制台日志(结果)代码>选项1:使用函数
而不是对象文本,允许此
:
let result=function(){
这个.a=1,
this.b=this.a;
};
设res=新结果()
console.log(res.b)
谢谢,但我想要的是文字解决方案,而不是动态解决方案。很高兴了解自定义getter。谢谢,但我希望文字解决方案不是动态的。谢谢,但我希望文字解决方案不是动态的。很高兴了解自定义getter。选项B是一个字面上的解决方案。谢谢。这是选择的解决方案,但我仍在等待有人揭示特殊的“字面意义”。您对result.a++的预期行为是什么;console.log(result.b)
-输出1
或2
?或者换句话说,您希望result.b
对result.a
有一个引用,还是仅仅是result.a
的初始值?