Heim > Web-Frontend > js-Tutorial > Hauptteil

Detaillierte Einführung in den JS-Prototyp und die Prototypenkette der JS-Vererbung

不言
Freigeben: 2018-08-17 11:36:48
Original
1958 Leute haben es durchsucht
Der Inhalt dieses Artikels besteht darin, Ihnen eine detaillierte Einführung in die Vererbung von JS-Prototypen und die Vererbung von JS-Prototypen zu geben. Ich hoffe, dass dies allen helfen kann .

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
Nach dem Login kopieren

js-Prototypkettencode-Analysediagramm:

Detaillierte Einführung in den JS-Prototyp und die Prototypenkette der JS-Vererbung

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
Nach dem Login kopieren

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);// 调用结果为 c
Nach dem Login kopieren
Verwandte 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!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!