난 분명 prototype을 이해못한게 분명하다.
도대체 어느때 prototype 프로퍼티를 사용해야할지 모르겠다.
객체라고 아무데나 붙이는게 아니였다.
자바스크립트에서 prototype 이게 뭐에요? 라는
지식인 질문에 답변이다. 내생애 처음 추천 해줬다..
자바스크립트에서 일반적으로 function 으로 선언하는 함수는 객체입니다.
비록 완벽하게는 아니지만 어느정도 OOP가 가능하다는 말이죠
예를 들면
function AAA()
{
this.width = 3;
this.height = 4;
}
이런식으로 선언하고
var objAAA = new AAA();
document.write( objAAA.width + " " + objAAA.height );
하시면 객체의 프로퍼티르르 지정할 수 있습니다.
그럼 이번엔 메소드를 추가 해 보죠
function AAA()
{
this.width = 3;
this.height = 4;
this.getArea = function()
{
return this.width * this.height;
}
}
var objAAA = new AAA();
alert( objAAA.getArea());
이렇게 하면 AAA라는 객체에 getArea라는 메소를 추가하게 됩니다.
하지만 이렇게 하면 단점이 하나 있습니다.
바로 AAA객체를 생성할 때 마다 getArea라는 객체를 또 생성하게 된다는 것이죠
이를 보완하기 위해 나온것이 prototype입니다
위 코드를 prototype을 적용시키면 다음과 같습니다
function AAA()
{
this.width = 3;
this.height = 4;
}
AAA.prototype.getArea = function()
{
return this.width * this.height;
}
var objAAA = new AAA();
alert( objAAA.getArea());
출처 : 스스로