为了账号安全,请及时绑定邮箱和手机立即绑定

符号作为 Firefox 中 Javascript 对象的关键标识符

符号作为 Firefox 中 Javascript 对象的关键标识符

不负相思意 2022-06-16 10:16:42
环境Ubuntu 18.04.4 LTS火狐 74.0铬 80.0问题我的问题是关于将来在使用重复标签时完全支持符号作为 Firefox 中 Javascript 对象的关键标识符。在 Chrome 的情况下,它可以添加两个具有相同标签的符号键。Symbol(id): 1284225Symbol(id): 55586另一个讨论是这是好是坏。例子我只是运行这段简短的代码。// main.jsconst idSym = Symbol('id')const idSym2 = Symbol('id')const user = {  id: 978,  name: 'Dominique',  city: 'Siena',  age: 59}user[idSym] = 1284225user[idSym2] = 55586console.log(user)Firefox 的控制台输出:{id: 978, name: "Dominique", city: "Siena", age: 59}main.js:89age:59city:"Siena"id:978name:"Dominique"Symbol(id):1284225__proto__:{}Chrome 的控制台输出:id: 978, name: "Dominique", city: "Siena", age: 59, Symbol(id): 1284225, …}id: 978name: "Dominique"city: "Siena"age: 59Symbol(id): 1284225Symbol(id): 55586__proto__: Object
查看完整描述

2 回答

?
长风秋雁

TA贡献1757条经验 获得超7个赞

我刚刚找到了这种行为的答案。很出乎意料。这只发生在我在 Visual Studio 代码中使用调试功能时。我在 VScode ( https://github.com/firefox-devtools/vscode-firefox-debug ) 中使用官方的 Firefox 扩展,但由于某种原因,它在这种特殊情况下失败了。我会说这是一个错误。

当我直接在 Firefox 中运行时,我得到与 Chrome 相同的输出。


查看完整回答
反对 回复 2022-06-16
?
梦里花落0921

TA贡献1772条经验 获得超6个赞

字符串参数Symbol()只是对象的描述性标签;它的目的不是为了帮助调试。如果您想使用相同的标签创建所有 Symbol 实例,那很好。它们仍然可以保证是不同的对象。



查看完整回答
反对 回复 2022-06-16
  • 2 回答
  • 0 关注
  • 109 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信