네이티브 프로토타입
-
모든 내장 객체의 메서드는 해당 내장 생성자 함수의 프로토타입에 저장됨
-
객체 자체엔 데이터만 저장됨
-
겍체 리터럴 또한 객체 생성자 함수와 동일하고 이 생성자 함수는 해당 자료형 생성자 함수의 prototype 을 prototype 으로 가짐
-
내장 객체들은 프로토타입에 메서드 저장해 놓음
-
명세서에서 모든 내장 프로토타입의 꼭대기엔 Object.prototype 이 있어서 ‘모든 것은 객체를 상속받음’
-
체인 상 중복 메서드 있을 시 체인 상에서 가장 가까운 곳에 있는 메서드 사용
-
console.dir 사용 시 내장 객체의 상속 관계 확인 가능
-
원시값 또한 래퍼 객체의 프로토타입에 메서드를 저장하고 메서드 호출 시 원시값을 레퍼 객체로 감싼 다음 메서드 호출한 뒤 바로 레퍼 객체는 사라짐
-
레퍼 객체는 보이지 않는 곳에서 생성되며 최적화는 JS엔진이 담당
-
undefined 와 null 값은 래퍼 객체 가지지 않음
-
내장 프로토타입은 수정 가능하고 내장 프로토타입 메서드 빌려와 새로운 메서드 만드는 것 가능함
-
내장 프로토타입 변경은 지양해야 함
-
메서드 빌리기는 프로토타입 빌릴 때 사용됨.
-
내장 메서드의 대부분은 해당 메서드가 속한 자료형인지 확인하지 않고 프로퍼티만 확인 해서 진행됨
-
내장 프로토타입 변경은 새로 폴리필 만들 시 변경하는 경우만 추천.