有没有办法将一个对象属性的值链接到另一个对象属性的值?
我的想法是,我有一个类似于异常(exception)接口(interface)的东西,所以我需要 propertys.name
和 .value
作为我的对象。在这种特殊情况下,名称很容易从值构造(值是一个数组,名称是 array.toString()
)
我可以使用 obj.value.toString()
而不是 value 但代码需要使用 obj.name
以使其适用于所有情况。
我试过这段代码,但它没有产生我想要的结果。我怎样才能实现所需的行为?
obj = {value: array, name: this.value.toString()}
最佳答案
您可以使用 getter.
var obj = {
value: array,
get name() {
return this.value.toString();
}
};
console.log(obj.value.toString() === obj.name); // true
您甚至可以扩展它以使用 setter如果需要的话。
var obj = {
value: array,
get name() {
return this.value.toString();
},
set name(val) {
this.value = val.split(','); // or any other operation you may need
}
};
obj.name = '1,2,3';
console.log(obj.value); // ['1', '2', '3']
关于javascript - 如何将 javascript 对象属性链接到同一对象的另一个属性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36314243/