ES6 Symbol - 3
Demo how to use Symbol
by Po-Jung Chen
JavaScript
/**
* Shared Symbols
**/
let symbolGlobal = Symbol.for('shared')
/**
* 透過 dynamic property 的方法把 symbol 設成 key
**/
let person = {
firstName: 'Aaron',
lastName: 'Chen'
}
function registerMember (memberObj) {
// 在 function 中設定的 symbol 一樣可以影響到外層的
let symbolScope = Symbol.for('shared')
memberObj[symbolScope] = 'secret'
console.log('symbolGlobal in scope', person[symbolGlobal]) // secret
console.log('symbolScope in scope', person[symbolScope]) // secret
}
registerMember(person)
console.log('symbolGlobal in global', person[symbolGlobal]) // secret
//console.log('symbolScope in global', person[symbolScope]) // symbolScope is not defined
console.log(Symbol.keyFor(symbolGlobal)) // shared