参见英文答案 >
What are the possible usage scenarios for the new JavaScript “Symbol” datatype?1个
新的原始类型带有符号类型的ES6.简短定义说:
新的原始类型带有符号类型的ES6.简短定义说:
符号是唯一且不可变的数据类型,可用作对象属性的标识符.符号对象是符号基元数据类型的隐式对象包装器.
我做了一些研究,但我无法理解为什么我们需要这种原始类型呢?
谢谢您的回答.
解决方法
这种原始类型对于所谓的“私有”和/或“唯一”密钥很有用.
使用符号,您知道没有其他人不共享此实例(而不是字符串)将无法在地图上设置特定属性.
没有符号的示例:
var map = {}; setProp(map); setProp2(map); function setProp(map) { map.prop = "hey"; } function setProp2(map) { map.prop = "hey,version 2"; }
但是,使用符号,我们不使用“字符串prop”,而是使用实例本身:
var map = {}; var symbol1 = Symbol("prop"); var symbol2 = Symbol("prop"); // same name,different instance – so it's a different symbol! map[symbol1] = 1; map[symbol2] = 2; // doesn't override the prevIoUs symbol's value console.log(map[symbol1] + map[symbol2]); // logs 3
原文地址:https://www.jb51.cc/js/155143.html
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。