是否可以在JavaScript中获取已定义符号的描述值?

时间:2016-07-06 15:09:54

标签: javascript node.js

假设我有一个符号,例如const sym = Symbol('foo');。现在,有没有办法从该符号中获取值foo而不依赖于字符串操作?

我希望sym.toString()返回'foo',但会返回Symbol(foo)

更新

我决定使用这个hacky解决方案,直到找到更好的解决方案:)

const key = Symbol.keyFor(sym) || (sym = sym.toString(), sym.substring(7, sym.length - 1));

1 个答案:

答案 0 :(得分:6)

Symbol.keyFor。但它只适用于全球注册的符号

DataTable dt = new DataTable();
dt = Ctype(dataGridView1.DataSource,DataTable).copy();

我猜测私人符号是按照设计做到的。你总是可以修补它:

const works = Symbol.for('foo');
const key1 = Symbol.keyFor(works); // "foo"

const doesNotWork = Symbol('foo');
const key2 = Symbol.keyFor(doesNotWork); // undefined