JS 객체 배우기

JUNHO YEOM·2023년 1월 16일
0

Javascript

목록 보기
8/9

let 과 const의 차이

let하고 const는 다른건 다 똑같고, 하나가 달라요
let은 재할당이 가능합니다.
const는 재할당이 불가능해요

Object(두둥)

Object는 생성자 함수에요. 모든 함수들 최상단에 위치해요
(JavaScript의 모든 함수는 객체니까)

객체의 구성

객체의 property는 key: value의 쌍으로 구성됩니다.
그리고, 객체는 attribute라는 속성을 가지고 있어요
[[ ]]
객체의 attribute는 이렇게 생겼어요z

객체가 가지고 있는 property의 세부적인 정보를 얻을 수 있게 해줘요
Object.getOwnPropertyDescriptor()

내부 슬롯, 내부 메서드

  • 자바스크립트 내부에는 내부 슬롯과, 내부 메서드가 존재해요
  • 내부슬롯, 내부 메서드는 개발자가 직접적으로 사용할 수 없어요
  • 특정 상황에 맞춰서 JS엔진에 의해서 알아서 사용되어요
  • 필요에 따라 간접적으로 슬롯과 메서드를 사용하는것은 가능해요
  1. [[Prototype]]__prototype__을 통해서 접근할 수 있게 되는데
    [[prototype]]내부슬롯에 간접적으로 접근할 수 있게 허용한 이유는 뭘까요?
    원래 내부적으로 접근 못하게 되어 있어요 원래 내부적으로만 사용하는 용도로 만들어졌기 때문이에요.
    하지만 프로그램을 하는 도중에 예상치 못하게 내부 슬롯의 기능들에 접근해야만 하는 일들이 생겨버렸어요
    (상속 관계를 바꿔야 할때라던가)
    그래서 접근을 할 수 있게 만들어주기 위해서 __proto__와 같은게 생겨났어요

객체는 property를 가지고 있어요
property는 key: value형태를 가지고 있는데
attribute는 property의 속성이에요
property하나가 만들어 지면, attrubute도 4가지를 가지게 되는데, 그중 value를 담당하는 하나를 우리가 보기쉽게 보여주는 거에요

객체 안에 내부 슬롯, 내부 메서드가 있는건가요?

JS에서 원시타입을 제외한 모든 것들은 모두 객체로 이루어 집니다.
이런 객체의 property들에 모두 저마다의 attribute가 있겠죠
사용자 정의 부분에 attribute
아마 내부자용에는 attribute가 없을 꺼에요

0개의 댓글