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)
 
posted @ 2020-09-04 10:49  帅气巴巴  阅读(131)  评论(0编辑  收藏  举报