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