프로토 타입 상속은 간단합니다. 믹스 인에 비해 단일 이점이 있습니다.
그것은 그것이 라이브 링크라는 것입니다. 프로토 타입을 변경하면 상속 된 모든 것이 변경됩니다.
pd를 사용한 예
var Circle = {
constructor: function _constructor() {
this.radius = 0;
return this;
},
area: function _area() {
return this.radius * this.radius * Circle.PI
},
PI: 3.14
};
var mixedIn = pd.extend({}, Circle).constructor();
var inherited = pd.make(Circle, {}).constructor();
Circle.perimeter = perimeter;
inherited.perimeter(); // wins
mixedIn.perimeter(); // fails
function perimeter() {
return 2 * this.radius;
}
따라서 기본적으로 "인터페이스"서클에 대한 변경 사항을 런타임에 해당 기능을 "사용"하는 모든 개체에 반영하도록하려면 해당 인터페이스에서 상속합니다.
변경 사항을 반영하지 않으려면 혼합하십시오.
믹스 인은 그보다 더 많은 목적을 가지고 있습니다. 믹스 인은 다중 "상속"을위한 메커니즘입니다.
당신은 객체가 다수의 "인터페이스"를 구현하려면 당신은 것 몇 가지를 혼합해야합니다. 당신은 프로토 타입 상속에 사용하는 사람이 당신이 실행시, 다른 사람이 혼합됩니다에 대한 변경 사항을 반영 할 것입니다.