심볼형

soyeon·2022년 9월 27일
0

TIL

목록 보기
23/31

https://youtu.be/E9uCNn6BaGQ
https://ko.javascript.info/symbol
코딩앙마님 강의와 모던 자바스크립트를 보고 정리한 내용입니다.

Symbol : 유일한 식별자

const a = Symbol();
const b = Symbol();

생긴 건 똑같아도 각각 다른 식별자임

console.log(a === b); //false

Symbol() 괄호 안에 설명을 넣을 수 있다.
설명이 똑같아도 각각 다른 식별자다.

const id = Symbol("id");
const id2 = Symbol("id");
console.log(id === id2) //false

Symbol.for(): 전역 심볼(심볼 공유)

  • 하나의 심볼을 만든 후 키를 통해 심볼을 공유할 수 있다.
  • Symbol.keyFor() 을 통해 키 값을 알아낼 수 있다.
const id1 = Symbol.for("id");
const id2 = Symbol.for("id");
console.log(id1 === id2); //true
Symbol.keyFor(id1) //id

심볼형으로 숨겨진 객체 프로퍼티 만들기

  • 객체의 값이 덮어씌워지는 것을 어느정도 방지할 수 있음
  • Object.keys() Object.values() Object.entries() for...in은 순회할 때 키가 심볼형인 프로퍼티는 건너뜀
    Object.assign()은 심볼형까지 복사됨!
const user = {
  name: "Mike",
  age: 30
};

const showName = Symbol("show name");
user[showName] = function () {
  console.log(this.name);
};

user[showName](); //Mike

//user[showName] 부분은 건너뜀
for (let key in user) {
  console.log(`His ${key} is ${user[key]}`);
  //His name is Mike
  //His age is 30
}
profile
공부중

0개의 댓글