Skip to content

프로토타입

JavaScript에는 객체라는 구조가 존재하고, 각 객체에는 다른 객체에 대한 링크를 보유하는 프로토타입이라는 비공개 속성이 있다. 그 프로토 타입 객체도 자신만의 프로토타입을 가지고 있으며, 프로토타입으로 null을 가진 객체에 도달할 때까지 이 연결은 계속된다.

image

예시 코드

닭의 프로토타입을 참새로 지정하면, 닭의 날개갯수날수있나 값을 참조했을 때 참새가 가지고 있던 값과 동일한 값이 반환된다. 이떄 날수있나 값을 false로 재지정하면 값이 바뀌게 된다.

function 참새(){
this.날개갯수 = 2;
this.날수있나 = true;
}
const 참새1 = new 참새();
console.log("참새의 날개 갯수 : ", 참새1.날개갯수); // 2
function () {
this.벼슬 = true;
}
.prototype = 참새1; // reference (인스턴스를 프로토타입으로 등록)
const 닭1 = new ();
console.log("닭1 날개 : ", 닭1.날개갯수, ", 날수있나? ", 닭1.날수있나); // 2, true
닭1.날수있나 = false;
console.log("다시 물어본다. 닭1은 날 수 있나? :", 닭1.날수있나); // false

위 코드는 아래처럼 도식화할 수 있다.


참고