es6新类型之Symbol学习笔记(二)

okgoes 2023-05-09 13:07:19
Categories: Tags:

Symbol

全局注册Symbol实现Symbol的共享

属性

Iteration symbols

正则表达式符号

其他符号

方法

Symbol prototype(符号原型)

1
undefined

属性

方法

示例

1
2
3
4
typeof Symbol() === 'symbol' // true
typeof Symbol('foo') === 'symbol' // true
typeof Symbol.iterator === 'symbol' // true

1
2
3
4
5
6
7
8
9
10
11
var obj = {};

obj[Symbol('a')] = 'a';
obj[Symbol.for('b')] = 'b';
obj['c'] = 'c';
obj.d = 'd';

for (var i in obj) {
console.log(i); // logs "c" and "d"
}

1
2
3
JSON.stringify({[Symbol('foo')]: 'foo'});                 
// '{}'

1
2
3
4
5
var sym = Symbol('foo');
var obj = {[sym]: 1};
obj[sym]; // 1
obj[Object(sym)]; // still 1

浏览器支持情况

QQ截图20180521110809.jpg