JS Symbol 作为对象键

JS Symbol as object key

我是 运行 节点软件,在软件的特定上下文中有一个对象,其中一个键是 Symbol,它的值是一个对象。例如:

object = {Symbol(symbol_name): another_object}

我正在尝试访问 'another_object' 键和值,但找不到这样做的方法。有人有建议吗?

最好的方法是先将 Symbol 保存在一个变量中,然后使用括号表示法查找它:

const sym = Symbol('symbol_name');
const object = {[sym]: { foo: 'bar' }}

console.log(object[sym]);

如果你没有对符号的引用,并且对象只包含一个符号,你可以用 getOwnPropertySymbols:

来获取它

const object = {
  [Symbol('symbol_name')]: {
    foo: 'bar'
  }
};

const sym = Object.getOwnPropertySymbols(object)[0];
console.log(object[sym]);

像这样将对象键放在方括号中:

object = {[Symbol(symbol_name)]: another_object}