Symbol的应用场景1—用作对象的属性名称
let s = Symbol('objKey');
let obj = {
a:100,
b:200,
[s]:300
}
console.log(obj);//{ a: 100, b: 200, [Symbol(objKey)]: 300 }
for(let item in obj){
console.log(item);// a b
}
console.log(Object.keys(obj))//[ 'a', 'b' ]
说明:上面的例子中,虽然s不是私有属性,但是因为Symbol的唯一性一定程度上使得属性私有化了。
启示:可以利用Symbol的唯一性实现一定程度的私有化。