심볼
참고 강의
코딩앙마님의 유튜브 강의를 듣고 공부 내용을 정리한 것입니다.
심볼
const a = Symbol();
const b = Symbol();
const id = Symbol('id');
const user = {
name : 'Mike',
age : 30,
[id] : 'myid'
}
> user
> { name: 'Mike', age: 30, Symbol(id): 'myid' }
> Object.keys(user)
> [ 'name', 'age' ]
Symbol.for() : 전역 심볼
1. 하나의 심볼만 보장받을 수 있음 2. 없으면 만들고, 있으면 가져오기 때문 3. Symbol 함수는 매번 다른 Symbol 값을 생성하지만, 4. Symbol.for 메소드는 하나를 생서한 뒤 키를 통해 같은 Symbol을 공유
const id1 = Symbol.for('id'); const id2 = Symbol.for('id'); id1 === id2 // true Symbol.keyFor(id1); const id = Symbol('id'); const user = { name : 'Mike', age : 30, [id] : 'myid' } Object.getOwnPropertySymbols(user); // [Symbol(id)] Reflect.ownKeys(user); // ['name', 'age', Symbol(id)]
const user = {
name : 'Mike',
age : 30
};
// user.showName = function() {};
const showName = Symbol('show name');
user[showName] = function() {
console.log(this.name);
}
for(let key in ser) {
console.log('His ${key} is ${user[key]}.');
}