在JS中,是否有一种方法可以将一个键的值设置为同一对象中另一个键的值?

3
我希望知道是否有一种方法可以访问一个键的值,并将其作为同一对象中另一个键的值添加。
例如,我想要:
obj = {key1: 'apple', key2: 'applesauce'};

我尝试过 obj = {key1: 'apple', key2: this.key1 + 'sauce'}

还尝试过 obj = {key1: 'apple', key2: key1 + 'sauce'}

我希望当更新 key1 时,key2 会自动更新。

谢谢

2个回答

6

你可以通过 getter 来实现。

obj = {
  key1: 'apple',
  get key2() {
    return this.key1 + 'sauce';
  }
}

console.log(obj.key2);
obj.key1 = 'awesome';
console.log(obj.key2);


2

基本上,在声明时不行,至少我不知道。在基本上是对象字面量的东西里,直到这个东西实际存在之前,你不能使用this来引用对象内部的内容。

你可以创建一个函数来生成该对象:

function keymaker(key) {
  return {
    key1: key,
    key2: key + 'sauce'
  }
}

obj = keymaker('apple');

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接