如何将javascript对象属性链接到同一对象的另一个属性?

Ser*_*gej 1 javascript properties interface object hyperlink

有没有办法将一个对象属性的值链接到另一个对象属性的值?

我的想法是,我有一个类似于例外的界面,所以我需要propertys.name.value我的对象.在这种特殊情况下,名称很容易从值构造(值是数组,名称是array.toString())

我可以使用obj.value.toString()而不是值,但代码需要用来obj.name使它适用于所有情况.

我尝试了这段代码,但它没有产生我想要的结果.我怎样才能实现理想的行为?

obj = {value: array, name: this.value.toString()}
Run Code Online (Sandbox Code Playgroud)

Mik*_*uck 6

你可以使用一个吸气剂.

var obj = {
  value: array,
  get name() {
    return this.value.toString();
  }
};
console.log(obj.value.toString() === obj.name); // true
Run Code Online (Sandbox Code Playgroud)

如果需要,您甚至可以扩展它以使用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']
Run Code Online (Sandbox Code Playgroud)

  • 我不知道javascript有吸气剂.非常感谢你! (3认同)