반응형
지금은 javascript가 많이 발전하여 oop를 구현하는것이 그리 어렵지 않지만 예전엔 구현이 좀 까다로웠다.
이번 포스팅은 예전에는 어떤 방식으로 oop를 구현하는지 정리하는 포스팅이다.
아래의 내용을 알아야 이번 포스팅을 이해할수가 있다.
대표적인 방식인 Pseudoclassical pattern 을 보면,
function SuperClass(arg1,arg2){
this.arg1 = arg1;
this.arg2 = arg2;
}
SuperClass.prototype.foo(){
console.log(this.arg1);
console.log(this.arg2);
}
function Subclass(argA,argB){
SuperClass.call(this,argA,argB);
}
// SubClass의 constructor와 prototype부분을 이런식으로 변경해주여 구현한다.
SubClass.prototype = Obeject.create(SuperClass.prototype);
SubClass.prototype.constructor = Subclass;
메서드의 오버라이딩 부분은 SuperClass의 foo에 this(SubClass)를 넘겨주어 강제로
SuperClass의 foo를 실행시킨다.
SubClass.prototype.foo = function(){
SuperClass.prototype.foo.call(this);
// do somethig....
}
오래전에 쓰여진 라이브러리는 상속을 이런식으로 구현한것을 볼수가 있는데,
mongoose 패키지의 일부에서도 이런 상속패턴이 쓰이고있다.
이 방식으로 코드를 짤것인지는 잘 모르겠지만 다른사람의 코드를 볼때 알아두면 좋을것 같다.
반응형
'Frontend > JAVASCRIPT' 카테고리의 다른 글
[Javascript] 비동기함수(2) - CallBack (0) | 2020.05.25 |
---|---|
[Javascript] 비동기함수(1) - Event Loop (0) | 2020.03.29 |
[Jacascript] call, apply, bind and this (0) | 2020.02.21 |
[Javascript] class inheritance in ES6 (0) | 2020.02.14 |
[Javascript] Object.create( ) 과 prototype chaining (0) | 2020.02.14 |