심벌과 상수
[일반적인 상수]
const Direction = {
UP:1,
DOWN:2,
LEFT:3,
RIGHT:4
}
const myDirection = Direction.UP;
if(myDirection ===Direction.UP){
console.log('You are up') //You are up
}
[심벌로 만든 상수]
const Direction = {
UP:Symbol('up'),
DOWN:Symbol('down'),
LEFT:Symbol('left'),
RIGHT:Symbol('right')
}
const myDirection = Direction.UP;
if(myDirection ===Direction.UP){
console.log('You are up') //You are up
}
심벌과 프로퍼티 키
const obj = {
[Symbol.for('mySymbol')]: 1
};
console.log(obj[Symbol.for('mySymbol')]); //1
심벌과 프로퍼티 은닉
const obj = {
[Symbol.for('mySymbol')]: 1
};
for(const key in obj){
console.log(key); //아무것도 안나옴
}
console.log(Object.keys(obj)); //[]
console.log(Object.getOwnPropertyNames(obj)); //[]
심벌과 표준 빌트인 객체 확장
Array.prototype.sum = function (){
return this.reduce((acc,cur)=>acc+cur,0);
};
console.log([1,2].sum()); //3
Well-known Symbol