类型转换
let s1 = Symbol('s1')
console.log(String(s1))
console.log(s1.toString())
console.log(Boolean(s1))
console.log(!!s1)
取值赋值
let s2 = Symbol('s2')
let obj = {}
obj.s2 = 2333
console.log(obj[s2])
console.log(obj.s2)
obj[s2] = 2333
let obj2 = {
[s2]: 233
}
属性遍历
let size = Symbol('size');
class Collection {
constructor() {
this[size] = 0;
}
addItem(item) {
this[this[size]] = item
this[size]++
}
static sizeOf(instance) {
return instance[size]
}
}
const c1 = new Collection();
console.log(Collection.sizeOf(c1))
c1.addItem(1)
console.log(Collection.sizeOf(c1))
c1[size] = 100
console.log(Collection.sizeOf(c1))
console.log(Object.getOwnPropertyNames(c1))
console.log(Object.getOwnPropertySymbols(c1))