본문 바로가기
javascript

javascript prototype 스터디

by 바나냥 2020. 11. 2.

자바스크립트는 프로토타입 기반 언어이다.

클래스가 없기 때문에 어떤 객체를 원형(prototype)으로 삼고 이를 복제(참조)함으로써 상속과 같은 효과를 얻는다.

생성자 함수 Constructor를 new 연산자와 함께 호출하여 새로운 인스턴스를 만들 수 있다.

이 instance에는 __proto__ 라는 프로퍼티가 자동으로 부여되는데, 이 녀석은 Constructor의 prototype 프로퍼티를 참조한다.

prototype도, 이를 참조하는 __proto__도 객체이다.

prototype 객체 내부에 instance가 사용할 메서드를 저장하고 instance에서 __proto__를 통해 이 메서드를 사용한다.

 

실무에서는 __proto__ 대신 Object.getPrototypeOf() 혹은 Object.create()를 이용하도록 하자.

 

 

var Person = function(name) {
    this._name = name;
}

var dain = new Person('Dain');

console.log(dain);
// Person {_name: "Dain"}
//	_name: "Dain"
//	__proto__: Object

Person.prototype === dain.__proto__

댓글