728x90
property key: 문자형
Symbol
심볼은 유일한 식별자를 만들 때 사용
const a = Symbol();
const b = Symbol();
a == b // 생긴건 똑같지만 false 발생
유일성 보장
const id = Symbol('id'); //설명을 붙일 수 있음
const user = {
name: 'Mike',
age: 30,
[id]: 'myid'
}
//{name: "Mike", age: 30, Symbol(id): "myid"}
그러나 Object.keys(user); 작성시
["name", "age"]만 발생
values, endries도 건너뜀
Symbol.for(): 전역 심볼
하나의 심볼만 보장받을 수 있음
없으면 만들고 있으면 가져오기 때문
Symbol함수는 매번 다른 Symbol값을 생성하지만, Symbol.for 메소드는 하나를 생성한 뒤 키를 통해 같은 Symbol을 공유
const id1 = Symbol.for('id');
const id2 = Symbol.for('id');
id1 === id2 // true
Symbol.keyFor(id1) //"id" 생성할 때 적었던 이름을 알려줌
숨겨진 Symbol key 보는법
Object.getOwnPropertySymbols(user); //작성 시 심볼들만 볼 수 있음
Reflect.ownKeys(user); //심볼을 포함한 모든 키를 보여줌
728x90
'Web > JavaScript' 카테고리의 다른 글
[JS] 수학, 숫자 메소드 (0) | 2024.02.06 |
---|---|
[JS] 객체 메소드, 컴퓨티드 프로퍼티 (0) | 2024.02.06 |
[JS] 생성자 함수 (0) | 2024.02.06 |
[JS] 변수 심화 (1) | 2024.02.06 |
[JS] 배열 (0) | 2024.02.05 |