2. 생성자를 빌리십시오
프로토 타입에 기준 유형 값을 포함하여 발생하는 문제를 해결하기 위해, 우리는 Borrous 생성자 도둑질 (위조 된 물체 또는 고전 상속)이라는 기술을 사용합니다.
이 기술의 기본 아이디어 : 서브 클래스 생성자 내부의 슈퍼 형 생성자를 호출하십시오.
생성자는 apply () 및 call () 메소드를 사용하여 새로 생성 된 서브 클래스 객체에서 실행할 수 있습니다.
함수 superType () {this.colors = [ "빨간색", "파란색", "녹색"];} 함수 subtype () {// 상속 된 SuperType suptype.apply (this);} var instance1 = new subtype (); instance1.colors.push ( "black"); instance1.colors); // 빨간색, 파란색, 녹색, blackvar instance2 = new subtype (); alert (instance2.colors); // 빨간색, 파란색, 녹색위의 예에서, 슈퍼 유형 생성자는 실제로 새로 생성 된 하위 유형 인스턴스의 환경에서 호출된다 (instance1 instance2). 이런 식으로, superType () 함수에 정의 된 모든 객체 초기화 코드는 새 하위 유형 객체에서 실행됩니다. 따라서 하위 유형의 각 인스턴스에는 자체 색상 속성 사본이 있습니다.
매개 변수를 전달하십시오
프로토 타입 체인의 경우 차입 생성자는 큰 이점이 있습니다. 즉, 하위 유형 생성자의 슈퍼 타입 생성자에 매개 변수를 전달할 수 있습니다.
함수 superType (name) {this.name = name;} 함수 subtype () {supertype.call (this, "bob"); this.age = 18;} var instance1 = new subtype (); alert (instance1.age); //18alert(instance1.name); //단발빌린 생성자 문제 :
메소드는 생성자에 모두 정의되므로 기능 재사용에 대해 이야기 할 방법이 없습니다. 또한, 슈퍼 타입 프로토 타입에 정의 된 방법은 하위 유형에도 보이지 않는다.
3. 조합 상속
때때로 의사-고급 상속이라고도하는 조합 상속은 프로토 타입 체인과 빌린 생성자 기술을 결합하는 것을 말합니다. 이것은 둘 다의 강점을 연주하는 상속 모드입니다.
프로토 타입 체인을 사용하여 프로토 타입 특성 및 방법의 상속을 구현합니다.
인스턴스 속성의 상속은 생성자를 빌려서 달성됩니다.
이러한 방식으로, 기능 재사용은 프로토 타입에서 메소드를 정의하여 달성되며 각 인스턴스에 고유 한 속성이 있는지 확인할 수 있습니다.
함수 superType (name) {this.name = name; this.colors = [ "Red", "Blue", "Green"];} supertype.prototype.sayname = function () {alert (this.name);} 함수 subtype (이름, age) {// 상속 속성 superType.call (this, name); this.age = age;} // 상속 메소드 subtype.prototype = new supttype (); subtype.prototype.sayage = function () {alert (this.age);} var instance1 = new subtype ( "bob", 22); instance1.colors.push ( "black"); Alert (instance1.colors); //red,Blue,Green,Blackenstance1.SayName (); //bobinstance1.sayage (); // 22var instance2 = new subtype ( "Alice", 21); Alert (instance2.colors); //red,Blue,GreenInstance2.sayName (); //aliceInstance2.sayage (); // 21이 예에서 슈퍼 형 생성자는 이름과 색상의 두 가지 속성을 정의합니다. SuperType의 프로토 타입은 method sayname ()을 정의합니다.
하위 유형 생성자는 SuperType 생성자를 호출 할 때 이름 매개 변수로 전달되며 자체 속성 연령을 정의합니다. 그런 다음 슈퍼 타입 인스턴스를 하위 유형의 프로토 타입에 할당하십시오. 이 방법은이 프로토 타입에 정의되어 있습니다.
이를 통해 두 가지 하위 유형 인스턴스는 색상 속성을 포함하여 자체 속성을 가질 수 있으며 동일한 방법을 사용할 수 있습니다.
위의 기사는 JS inheritance_borrow 생성자 및 조합 상속에 대해 간단히 이야기합니다. 나는 당신이 당신에게 참조를 줄 수 있기를 바랍니다. 그리고 당신이 wulin.com을 더 지원할 수 있기를 바랍니다.