네이티브 프로토타입

Vorhandenheit ·2021년 8월 25일
0

JS.코어

목록 보기
17/29
post-custom-banner

네이티브 프로토타입

Object.prototype

let obj = {}
alert( obj ); // [object Object]

객체를 만들 때, [[prototype]]은 Object.prototype을 참조

다른 내장 프로토타입

모든 내장 프로토타입 꼭대기에는 Object.prototpye, 모든 것은 객체를 상속받음

네이티브 프로토타입 변경하기

네이티브 프로토타입 변경을 허용하는 경우는 딱 하나, 폴리필을 만들 때
=> 프로토타입은 전역으로 영향을 미치기 때문에 조작하면 충돌이 날 가능성이 높음

  • 폴리필 : 메서드와 동일한 기능을 하는 메서드 구현체를 의미, 명세서에 정의되어 있으나 특정 자바스크르비트 엔진에 해당 기능이 구현되어있지 않을 때 폴리필을 사용
//repeat이라는 메서드가 없다고 가정
if (!String.prototype.repeat) {
	String.prototype.repeat = function (n) {
    	return newArray( n +1).join(this)
    }
}
alert('La'.repeat(3)) ; // LaLaLa

프로토타입 빌려오기

한 객체의 메서드를 다른 객체로 복사할 때 사용

let obj = {
	0: "Hello"
  	1: "world!",
  	length: 2,
};
obj.join = Array.prototype.join;
alert(obj.join(',')) ; // Hello,world!

join은 인덱스가 있는지 length프로퍼티가 있는지만 확인하기 떄문에 가능

profile
읽고 기록하고 고민하고 사용하고 개발하자!
post-custom-banner

0개의 댓글