Symbol是Es6新增的原始数据类型,除了 Number 、 String 、 Boolean 、 Object、 null 和 undefined ,还新增了 Symbol 。Symbol表示独一无二的值,最大的用法是用来定义对象的唯一属性名。
Symbol是数据类型,不是对象,所以不能用new命令!Symbol()函数是独一无二的 ,主要用于给对象添加属性和方法
这里面讲到Symbol.for(),网上的解释:Symbol.for() 类似单例模式,首先会在全局搜索被登记的 Symbol 中是否有该字符串参数作为名称的 Symbol 值,如果有即返回该 Symbol 值,若没有则新建并返回一个以该字符串参数为名称的 Symbol 值,并登记在全局环境中供搜索
每一个 Symbol 的值都是不相等的,所以 Symbol 作为对象的属性名,可以保证属性不重名。作为对象的属性名有三种写法 ,如下图:
Symbol.keyFor(), 返回一个已登记的 Symbol 类型值的 key ,用来检测该字符串参数作为名称的 Symbol 值是否已被登记。用法如下:
谢谢观看!如有错误请斧正