🌈 인프런의
코어 자바스크립트(정재남)
수강 후, 이해한 내용을 정리한 글입니다.
아래의 그림에서 constructor에는 개발자가 정의한 것(ex.Person)뿐만 아니라 JavaScript에 내장된 Number, String, Array, Function, Boolean, Date 등도 들어갈 수 있다.
아래와 같은 그림으로 표현할 수 있다.
Date.prototype에 내장된 getDate(), getDay()와 같은 Date 전용 메서드들처럼, Object도 Object만을 위한 메서드들이 존재한다. 예를 들면 assign(), keys(), values() 등이 그것이다. 하지만 이것들을 Object.prototype 안에 저장하면
new Date().values()
Prototype Chain을 통해 위와 같은 코드도 실행할 수 있게 돼버린다.
이러한 이유로 values()와 같은 Object 전용 메서드는 Prototype Chain을 타고 obj.values()로 접근할 수 없고, Object.values(obj)로 접근해야 한다.