자바스크립트는 프로토타입 기반 언어이다.
클래스가 없기 때문에 어떤 객체를 원형(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__
'javascript' 카테고리의 다른 글
[Vanilla JS] 여러개의 요소에 AddEventListener 넣기 (0) | 2020.11.08 |
---|---|
canvas context 학습내용1 (0) | 2020.11.07 |
배열을 객체로, 객체를 배열로 (0) | 2020.10.15 |
parameter(매개변수)와 argument(인자)의 차이 (0) | 2020.10.06 |
Date getMonth 달 2자리로 출력하기 (0) | 2020.09.28 |
댓글