Symbol

2020-05-14  本文已影响0人  行走的蛋白质
const sym1 = Symbol('sym')
const sym2 = Symbol('sym')
console.log(sym1 === sym2) // false
const sym1 = Symbol('sym')
sym1.name = 'symbol'
console.log(sym1) // Symbol(sym)
console.log(sym1.name) // undefined
console.log(sym1.description) // sym
const obj1 = {
    name: 'sym'
}
const obj2 = {
    name: 'sym'
}
const obj3 = {
    [obj1.name]: 'sym1',
    [obj2.name]: 'sym2'
}
console.log(obj3) // { sym: 'sym2' }
console.log(obj3[obj1.name]) // sym2
console.log(obj3[obj2.name]) // sym2
const obj1 = {
    name: 'sym',
    key: Symbol('sym')
}
const obj2 = {
    name: 'sym',
    key: Symbol('sym')
}
const obj3 = {
    [obj1.key]: 'sym1',
    [obj2.key]: 'sym2'
}
console.log(obj3) // { [Symbol(sym)]: 'sym1', [Symbol(sym)]: 'sym2' }
console.log(obj3[obj1.key]) // sym1
console.log(obj3[obj2.key]) // sym2
const sym = Symbol()
const obj = {
    name: 'sym',
    [sym]: 'symbol'
}
for(let k in obj) {
    console.log(k) // name
}
Object.getOwnPropertySymbols(obj).forEach(n => {
    console.log(n) // Symbol()
})
Reflect.ownKeys(obj).forEach(j => {
    console.log(j) // name Symbol()
})
上一篇 下一篇

猜你喜欢

热点阅读