无论如何,有没有在JavaScript中不同对象之间重用键?

时间:2018-12-16 19:31:33

标签: javascript ecmascript-6

鉴于我们有一个

const fooBar = {
  foo: 'bar'
}

和另一个对象

const fooBarBoom = {
  foo: 'boom'
}

是否有办法重新使用fooBarBoom的fooBar中存在的'foo'键。

用例将是避免在预期的对象之间维护多个更改。

我知道我们可以做类似的事情

var fooBarBoom = {
  [fooBar.foo]: 'boom'
}

但这将使我们将fooBarBoom.bar作为键而不是fooBarBoom.foo

2 个答案:

答案 0 :(得分:3)

我认为您正在寻找

const key = "foo";

const fooBar = {
  [key]: 'bar'
};
const fooBarBoom = {
  [key]: 'boom'
};

尽管工厂函数可能是创建相同形状的对象的更简单解决方案:

function make(foo) {
  return {foo};
}

const fooBar = make('bar');
const fooBarBoom = make('boom');

答案 1 :(得分:-1)

如果情况允许,请考虑Symbol。 符号可以全局共享(运行时范围)。如果您想探索,给定的mdn链接会有所帮助。

console.log(Symbol.for('bar') === Symbol.for('bar')); // true