prototype이 뭐죠...?
- 쉽게 말해 클래스 기반 언어에서 상속을 사용하는 것처럼 프로토타입 기반 언어에서는 어떤 객체를 원형(prototype)으로 삼고 이를 복제함으로 상속과 비슷한 효과를 내는 것
const Person = function (name){
this._name = name;
}
Person.prototype.getName = function(){
return this._name;
}
var suzy = new Person('suzy');
console.log(suzy.getName());
console.log(suzy.__proto__.getName());
suzy.__proto__._name = 'suzi__proto__'
console.log(suzy.__proto__.getName());
console.log(suzy.getName());
__proto__는 언제생기죠?
- 어떤 생성자 함수를 new 연산자와 함께 호출하면 생성자 함수에 정의된 내용을 바탕으로 새로운 인스턴스가 생성되는데 이때 인스턴스에는 __proto__ 라는 프로퍼티가 자동으로 부여되고 생성자 함수의 prototype이라는 프로퍼티를 참조합니다!