728x90
반응형
심볼 (Symbol)
유일성을 보장하는 식별자
원본 객체 건드리지 않고 새 프로퍼티/메소드 추가해야하는 경우에 사용할 수 있다.
const a = Symbol();
const b = Symbol('bob'); 설명 붙여주기
b.description; 심볼 id값 가져오기
const user = {
name : "bob",
age : 10,
[id] : 'id' 심볼로 만든 키를 가진 프로퍼티
}
Object.keys(user); ['name','age'] 심볼은 보이지 않는다.
Object.getOwnPropertySymbols(user); 심볼만 보여준다.
Relfect.ownKeys(user); 심볼 포함하여 모든 키 보여준다.
전역 심볼
Symbol.for() 전역 심볼 : 반드시 하나의 심볼만 보장함.
a = Symbol.for('abc') 이러한 'abc'라는 키를 통해 같은 심볼을 공유 가능함.
b = Symbol.for('abc')
a === b : true
keyA = Symbol.keyFor(a) 심볼 id 값을 반환해줌
심볼 활용
원본 객체 건드리지 않고 새 프로퍼티/메소드 추가해야하는 경우에 사용할 수 있다.
const user = {
name : "bob",
age : 10,
}
const showInfo = Symbol('bob');
user[showinfo] = function() {
console.log(this.name, this.age);
}
user[showname](); 원본은 전혀 건드리지 않고도 함수를 생성하여 호출가능
반응형
'프론트엔드 개발 > Javascript' 카테고리의 다른 글
자바스크립트 - 클로저 (closure) (0) | 2021.08.21 |
---|---|
자바스크립트 - 진수 변환, Math 라이브러리 (0) | 2021.08.21 |
자바스크립트 - 배열 (0) | 2021.08.18 |
자바스크립트 - 객체 (0) | 2021.08.18 |
자바스크립트 - 함수 (0) | 2021.08.18 |