이 기사에서는 JS 캡슐화에서 사용할 수있는 생성자 상속 사용에 대해 설명합니다. 참조를 위해 공유하십시오. 세부 사항은 다음과 같습니다.
다음 코드를 살펴 보겠습니다
(YUI) 라이브러리에 사용 된 방법 :
다음과 같이 코드를 복사하십시오. 함수 확장 (child, parent) {
var f = function () {};
f. prototype = parent.prototype;
child.prototype = new f ();
child.prototype.constructor = child;
child.uber = parent.prototype;
}
사본 상속 메소드, 속성 사본도 있습니다.
이 방법은 이전과 다릅니다. 아동 프로토 타입이 확장되었으므로 child.prototype.constructor 속성을 다시 덮어 쓰지 않기 때문에 재설정 할 필요가 없습니다.
이전 방법과 비교할 때이 방법은 효율성이 더 좋습니다. 여기에서 실행되는 것은 하위 객체 프로토 타입의 사본이 하나씩 있기 때문입니다. 간단한 프로토 타입 체인 쿼리보다는.
이 방법은 기본 데이터 유형 만 포함하는 객체에만 적용됩니다. 함수 및 배열을 포함한 모든 객체 유형은 복제 할 수 없습니다. 그들은 참조 통과 만 지원합니다.
다음과 같이 코드를 복사하십시오 : function extend2 (child, parent) {
var p = parent.prototype;
var c = child.prototype;
for (var i in p) {
C [i] = p [i];
}
c.uber = p;
}
var shape = function () {}
var twodshape = function () {}
shape.prototype.name = 'shape';
shape.prototype.tostring = function () {
이 this.name;
}
extend2 (twodshape, shape);
var t = 새로운 twodshape ();
T. 이름
//-> "모양"
t.toString ();
//-> "모양"
twodshape.prototype.name = 'twodshape';
T. 이름
//-> "2D 모양"
t.toString ();
//-> "2D 모양"
twodshape.prototype.tostring === shape.prototype.tostring
//-> true
twodshape.prototype.name === shape.prototype.name
//-> false
이 기사가 모든 사람의 JavaScript 프로그래밍에 도움이되기를 바랍니다.