Heim >Web-Frontend >js-Tutorial >Detaillierte Einführung in den JS-Prototyp und die Prototypenkette der JS-Vererbung
js-Prototypkette
Die sogenannte Kette von Worten und Taten besteht darin, dass, wenn der Konstruktor oder das Objekt A, der Prototyp von A auf den Konstruktor oder das Objekt B zeigt , und der Prototyp von B zeigt auf den Konstruktor oder das Objekt C, und so weiter, der endgültige Konstruktor oder der Ursprung des Objekts zeigt auf den Prototyp des Objekts. Dies bildet eine Kettenstruktur, die als Prototypenkette
js-Prototypketten-Beispielcode:
// 原型链 function A(){ this.a = 'a'; } // 通过构造函数创建对象 var a = new A(); function B(){ this.b = 'b'; } // 将B的原型指向对象a B.prototype = a; // 通过构造函数创建对象 var b = new B(); console.log(b.b);// b console.log(b.a);// a function C(){ this.c = 'c'; } // 将C的原型指向对象b C.prototype = b; // 通过构造函数创建对象 var c = new C(); console.log(c.c);// c console.log(c.b);// b console.log(c.a);// a
js-Prototypkettencode-Analysediagramm:
nur erbt vom Prototyp
Beispielcode:// 原型链 function A(){ // 将自有属性改写为原型属性 // this.a = 'a'; } A.prototype.a = 'a'; function B(){ // this.b = 'b'; } // 将B的原型指向 B.prototype = A.prototype; B.prototype.b = 'b'; /*B.prototype = { b : 'b' }*/ function C(){ this.c = 'c'; } // 将C的原型指向 C.prototype = B.prototype; var c = new C(); console.log(c.c);// c console.log(c.b); console.log(c.a);// a
Probleme mit der Vererbungsimplementierung der js-Prototypkette
1. Die Prototypenkette teilt tatsächlich Eigenschaften und Methoden zwischen mehreren Konstruktoren oder Objekten 2. Für Objekte gemeinsamer Unterklassen können Sie keine Parameter an den übergeordneten Konstruktor übergeben Hinweis: In der tatsächlichen Entwicklung wird die Prototypenkette selten alleine verwendet Beispielcode:// 原型链 function A(){ // 将自有属性改写为原型属性 // this.a = 'a'; } A.prototype.a = 'a'; function B(){ // this.b = 'b'; } // 将B的原型指向 B.prototype = A.prototype; B.prototype.b = 'b'; function C(){ // this.c = 'c'; } // 将C的原型指向 C.prototype = B.prototype; C.prototype.c = 'c'; var c = new C(); console.log(c.c);// 调用结果为 c console.log(c.b);// 调用结果为 b console.log(c.a);// 调用结果为 a var a = new A(); console.log(a.a);// 调用结果为 a console.log(a.b);// 调用结果为 b console.log(a.c);// 调用结果为 c var b = new B(); console.log(b.a);// 调用结果为 a console.log(b.b);// 调用结果为 b console.log(b.c);// 调用结果为 cVerwandte Empfehlungen:
Detaillierte Erläuterung des JS-Prototyps und der Prototypenkette
JS-Kernserie: Eine kurze Diskussion über Prototypobjekte und Prototypketten
Das obige ist der detaillierte Inhalt vonDetaillierte Einführung in den JS-Prototyp und die Prototypenkette der JS-Vererbung. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!