Symbol可以单独定义,值不会相等
{
//声明
let a1=Symbol();
let a2=Symbol();
console.log("Symbol",a1===a2); //false false
let a3=Symbol.for("a3");
let a4=Symbol.for("a3");
console.log(a3===a4) //true
}
{
let a1=Symbol.for("abc");
let obj={
[a1]:"123",
"abc":345,
"c":456
}
console.log(obj);
//for of 取不到key value值
for(let [key,value] of Object.entries(obj)){
console.log("let of",key,value);
}
//获取Symbol定义的key值
Object.getOwnPropertySymbols(obj).forEach(function(item){
console.log("symbolKey",obj[item]); //123
})
//获取所有的,包括Symbol定义的key value值
Reflect.ownKeys(obj).forEach(function(item){
console.log("ownkeys",item,obj[item]); //abc 345,c 456,Symbol(abc) 123
})