10唯一值
//每次创造出来的symbol都是唯一的,所以称为唯一值
let syb1 = Symbol("描述1")
let syb2 = Symbol("描述2")
console.log(syb1)
console.log(syb2)
console.log(syb1 === syb2)//false
1
2
3
4
5
6
2
3
4
5
6
# symbol可以用来做对象的key值
let mySymbol = Symbol();
let obj = {
[mySymbol]: "小明",
age:18
};
1
2
3
4
5
2
3
4
5
# 但是正常情况下无法获取symbol
let mySymbol = Symbol();
let obj = {
[mySymbol]: "小明",
age:18
};
for(key in obj){
console.log(key)//没有symbol
}
1
2
3
4
5
6
7
8
2
3
4
5
6
7
8
# 需要特殊方法才可以
let mySymbol = Symbol();
let obj = {
[mySymbol]: "小明",
age:18
};
console.log(Object.getOwnPropertySymbols(obj))//打印出当前对象的所有symbol属性
console.log(Reflect.ownKeys(obj))//打印当前对象所有的属性,包括symbol
1
2
3
4
5
6
7
8
2
3
4
5
6
7
8
# 使用symbol.for来存储数据
编辑 (opens new window)
上次更新: 2022/04/24, 13:33:34