유일한 key를 생성할 수 있으며, key를 노출시키지 않고 감출 수 있는 것
let person = {
firstName: "Jeremy",
lastName: "Go",
getFullName: function () {
return this.firstName + " " + this.lastName;
},
};
이 때, getFullName이 오브젝트의 기본 내장 함수로 추가되면 의도치 않은 충돌이 발생한다. 이를 방지하기 위해서 Symbol을 사용한다.
let person2 = {
firstName: "Jeremy",
lastName: "Go",
};
var getFullName = Symbol("getFullName");
person2[getFullName] = function () {
return this.firstName + " " + this.lastName;
};
이럴 경우 getFullName에는 Symbol("getFullName")으로 유일한 key 값을 가진다.
console.log(getFullName); 을 입력하여도 출력은 Symbol(getFullName) 으로 나오기 때문에 어떤 key 값으로 생겼는지 알 수 없음