let하고 const는 다른건 다 똑같고, 하나가 달라요
let은 재할당이 가능합니다.
const는 재할당이 불가능해요
Object는 생성자 함수에요. 모든 함수들 최상단에 위치해요
(JavaScript의 모든 함수는 객체니까)
객체의 property는 key: value의 쌍으로 구성됩니다.
그리고, 객체는 attribute라는 속성을 가지고 있어요
[[ ]]
객체의 attribute는 이렇게 생겼어요z
객체가 가지고 있는 property의 세부적인 정보를 얻을 수 있게 해줘요
Object.getOwnPropertyDescriptor()
[[Prototype]]
을__prototype__
을 통해서 접근할 수 있게 되는데
[[prototype]]
내부슬롯에 간접적으로 접근할 수 있게 허용한 이유는 뭘까요?
원래 내부적으로 접근 못하게 되어 있어요 원래 내부적으로만 사용하는 용도로 만들어졌기 때문이에요.
하지만 프로그램을 하는 도중에 예상치 못하게 내부 슬롯의 기능들에 접근해야만 하는 일들이 생겨버렸어요
(상속 관계를 바꿔야 할때라던가)
그래서 접근을 할 수 있게 만들어주기 위해서__proto__
와 같은게 생겨났어요
객체는 property를 가지고 있어요
property는 key: value형태를 가지고 있는데
attribute는 property의 속성이에요
property하나가 만들어 지면, attrubute도 4가지를 가지게 되는데, 그중 value를 담당하는 하나를 우리가 보기쉽게 보여주는 거에요
객체 안에 내부 슬롯, 내부 메서드가 있는건가요?
JS에서 원시타입을 제외한 모든 것들은 모두 객체로 이루어 집니다.
이런 객체의 property들에 모두 저마다의 attribute가 있겠죠
사용자 정의 부분에 attribute
아마 내부자용에는 attribute가 없을 꺼에요