Heim >Web-Frontend >js-Tutorial >Eine kurze Diskussion zur Implementierung der Vererbung in Javascript_Javascript-Kenntnissen
S1: Alles in js ist ein Objekt. Überlegen Sie, wie wir die Vererbung der Eigenschaften und Methoden des übergeordneten Objekts zunächst so implementieren würden
function Parent(){ this.name='123'; } Parent.prototype.getName=function(){ return this.name; } function Son(){ this.age=20; } Son.prototype=new Parent(); Son.prototype.getAge=function(){ return this.age; } var son=new Son(); console.log('Name :'+son.getName()+';Age: '+son.getAge()); VM1777:16 Name :123;Age: 20
function Parent(){ this.name='123'; this.fruits=['apple']; } Parent.prototype.getName=function(){ return this.name; } function Son(){ this.age=20; } Son.prototype=new Parent(); Son.prototype.getAge=function(){ return this.age; } var son=new Son(); var son1=new Son(); console.log(son.fruits);//["apple"] console.log(son1.fruits);//["apple"] son.fruits.push('pear'); console.log(son.fruits);//["apple", "pear"] console.log(son1.fruits);//["apple", "pear"]
zurückgegriffen wird
function Parent(){ this.name='123'; this.fruits=['apple']; } Parent.prototype.getName=function(){ return this.name; } function Son(){ Parent.call(this); this.age=20; } Son.prototype=new Parent(); Son.prototype.getAge=function(){ return this.age; } var son=new Son(); var son1=new Son(); console.log(son.fruits);//["apple"] console.log(son1.fruits);//["apple"] son.fruits.push('pear'); console.log(son.fruits);//["apple", "pear"] console.log(son1.fruits);//["apple"]
in
S3: Der nächste Schritt besteht darin, die Attribute und Methoden einer Instanz zu entfernen. Hier kommt der Konstruktor ins Spiel, um den Parent.prototype in ein natives Objekt als Prototyp des untergeordneten Objekts zu rekonstruieren . Dann verweisen Sie den Konstruktor auf den Unterkonstruktor
function Parent(){ this.name='123'; this.fruits=['apple']; } Parent.prototype.getName=function(){ return this.name; } function Son(){ Parent.call(this); this.age=20; } function Extend(Parent,Son){ var proto = new Object(Parent.prototype); proto.constructor = Son; Son.prototype=proto; } Extend(Parent,Son); Son.prototype.getAge=function(){ return this.age; }
Das Obige ist der gesamte Inhalt dieses Artikels. Ich hoffe, er gefällt Ihnen allen.