ES6 数据类型Symbol
Symbol
-
作用:解决变量名冲突的问题,每一个symbol都是独一无二的
-
创建:let name = Symbol()
-
创建带描述的symbol
-
let name = Symbol("描述")
-
获取对象中的symbol的key
1 //symbol() 定义的属性,一般方法获取不到 2 let name= Symbol() 3 let obj = [ 4 name:"123", 5 [name]:"456"] 6 //获取symbol元素Object.getOwnPropertySymbols() 7 Object.getOwnPropertySymbols(obj) 8 //获取全部元素(包括symbol元素)Reflect.ownKeys() 9 Reflect.ownKeys(obj)
-
全局的symbol Symbol.for()
let sym1 = Symbol.for("name")
如果name在全局未创建,则会在全局创建Symbol
如果name已经创建了,则会返回全局的Symbol
-
获取全局名字 Symbol.keyFor()
Symbol.keyFor(sym1)