是否可以在 JavaScript 中获取已定义符号的描述值
Is it possible to get the description value of a defined Symbol in JavaScript?
>假设我有一个符号,例如const sym = Symbol('foo');
。现在,有没有办法在不依赖字符串操作的情况下从该符号中获取foo
的值?
我希望sym.toString()
返回'foo'
但它返回Symbol(foo)
。
更新
我接受了这个笨拙的解决方案,直到我找到一个更好的解决方案:)
const key = Symbol.keyFor(sym) || (sym = sym.toString(), sym.substring(7, sym.length - 1));
有Symbol.keyFor
.但它仅适用于全局注册的符号
const works = Symbol.for('foo');
const key1 = Symbol.keyFor(works); // "foo"
const doesNotWork = Symbol('foo');
const key2 = Symbol.keyFor(doesNotWork); // undefined
我猜私有符号是故意这样做的。你总是可以猴子修补它:
const patched = Symbol('foo');
patched.key = 'foo';
相关文章:
- 为什么JavaScript抛出'未捕获的ReferenceError:var未定义'定义var时
- 在JavaScript中定义自定义对象和函数(第2部分)
- 在JavaScript中定义自定义对象和函数
- 为html标记定义自定义css样式
- 未定义===未定义比较什么
- 在这段代码中:为什么e被定义在定义e的括号中
- 为什么Inspect元素中的错误显示函数myNUM()没有定义?如何定义函数
- 定义自定义JavaScript异常的较短方法
- 在javascript中“定义”和定义有什么区别
- grunt-usemin:定义自定义流
- 用于定义自定义服务的语法
- 可以在 gwt 中设置本机滚动条的样式,无需定义自定义滚动条,也无需使用 ScrollPanel 或 CustomScr
- 王牌编辑器“定义未定义”
- 为什么“未定义”==未定义是不正确的
- jQuery 未定义 - $ 未定义
- 错误:定义已定义
- 使用javascript从json中定义未定义的对象
- 使用Javascript定义未定义的变量
- Ajax 调用给了我一个未定义 - 未定义的错误
- 如何在Javascript中有效地定义自定义HTMLElement属性,以便能够使用HTML进行设置