Symbol 타입은 이름이 같더라도 모두 다른 존재로 인식한다.
그런데 가끔 전역변수처럼 이름이 같으면 같은 객체를 가리켜야 할 상황도 생긴다. 이럴때 사용하는 것이 Symbol.for()이다.
Symbol.for() 특징const id1 = Symbol.for('id');
const id2 = Symbol.for('id');
id1 === id2; // true
Symbol의 이름을 알고 싶을때는
Symbol.keyFor(id1) // "id"
const id = Symbol('id');
const user = {
name : 'Mike',
age : 30,
[id] : 'myid'
}
Object.getOwnPropertySymbols(user);
//출력
[Symbol(id)]
const id = Symbol('id');
const user = {
name : 'Mike',
age : 30,
[id] : 'myid'
}
Reflect.ownKeys(user);
//출력
["name", "age", Symbol(id)]