• 카테고리

    질문 & 답변
  • 세부 분야

    프로그래밍 언어

  • 해결 여부

    미해결

Weakmap을 사용한 비공개 객체 맴버 코드 질문있습니다.

20.12.16 17:26 작성 조회수 146

0

비공개 객체 맴버 코드중에 jn, sh 변수들의 빈 객체안에 get과 set 메소드로 인해 invoke 값이 들어왔는데

이 invoke 값들이 Weakmap(privateMembers)으로 인해서 나중에 정보가 자동으로 날아가게끔 메모리를 더 좋게 관리할 수 있게 하는 코드라고 이해하면 될까요? 

또 하나 질문이 invoke값이 들어있는 빈 객체가 원래 즉시 실행 함수이므로 접근이 안되어 원래 빈객체인데  get set 메소드로 인해 invoke라는 값이 들어오게 된 것으로 이해한 것이 맞을까요?

사실 invoke의 개념을 처음 봐서 좀 헷갈려서 이렇게 질문을 올리게 되었네요..ㅎㅎ

답변 2

·

답변을 작성해보세요.

0

k0502s님의 프로필

k0502s

질문자

2020.12.17

그렇군요. 크롬 브라우저의 단어 표현이었군요! 

항상 정성스러운 답변 감사합니다!

0

ES5에서 도입된 getter는 프로퍼티에 접근하기 전까지 그 값을 계산하지 않습니다.

getter의 값 계산은 실제 값이 필요할 때 이루어집니다. 이 동작을 크롬 브라우저에서는 'invoke'라는 단어로 표현하고 있는 것입니다.

이로써 불필요한 계산을 미리 하지 않아 자원 낭비를 줄일 수 있습니다.

https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Functions/get#%EB%98%91%EB%98%91%ED%95%9CSmart_%EC%8A%A4%EC%8A%A4%EB%A1%9C_%EB%8D%AE%EC%96%B4%EC%93%B0%EB%8A%94self-overwriting_%EB%8A%90%EA%B8%8B%ED%95%9Clazy_getter