ES6之Symbol
来源:互联网 发布:蛇精吐火的软件 编辑:程序博客网 时间:2024/06/11 01:50
作用
表示独一无二的值。
举个栗子:
let a1 = Symbol();let a2 = Symbol();console.log(a1===a2); //false
用Symbol声明的两个变量绝对不相等!
那么问题来了,如果我们希望重用一个Symbol值怎么办?
Symbol.for()
let a1 = Symbol.for('foo'); let a2 = Symbol.for('foo'); console.log(a1===a2); //true
如何获取Symbol值呢?
这里要注意,for…of、for…in 是取不到symbol值的
let a1 = Symbol.for('abc'); let obj={ [a1]:'123', 'abc':345, 'c':456 }; console.log('obj',obj); for(let [key,value] of Object.entries(obj)){ console.log('let of',key,value); } Object.getOwnPropertySymbols(obj).forEach(function(item){ console.log(obj[item]); })
由此可见:for…of…方法只能返回 非 Symbol 类型;Object.getOwnPropertySymbols()接口只能返回 Symbol 类型。
有什么办法可以同时返回普通类型+Symbol类型呢?
用 Reflect 方法
Reflect.ownKeys(obj).forEach(function(item){ console.log('ownkeys',item,obj[item]); })
阅读全文
0 0
- ES6之路--Symbol
- ES6之Symbol
- ES6入门之Symbol
- ES6之Symbol
- ES6之Symbol
- ES6学习笔记之Symbol
- ES6学习笔记之《Symbol》
- 学习笔记:ES6之Symbol
- ES6--Symbol
- ES6 symbol
- 【ES6】symbol
- es6-symbol
- ES6--symbol
- 【es6】symbol
- es6->Symbol
- 初步探究ES6之Symbol类型
- ES6新特性之Symbol使用细节
- ES6学习之路10----Symbol
- JS 生成
- lombok的使用
- C#--Winform项目核心模块-基于DataTbale的视图实现成绩快速筛选
- epoll使用
- create volume
- ES6之Symbol
- Java面向对象多态性的应用
- 设计模式——建造者模式
- 每隔两分钟删除指定文件夹内容
- 3.Hibernate框架之联合主键
- Linux系统基本命令行操作(三)
- Kotlin中将lambda表达式作为参数
- 使用Kettle从本地上传文件到远程HDFS
- MapReduce学习笔记