Heim > Artikel > Web-Frontend > Eine eingehende Analyse des Konstruktors in JavaScript
Die Konstruktor-Eigenschaft gibt einen Verweis auf die Array-Funktion zurück, die dieses Objekt erstellt hat. Dieser Artikel stellt Ihnen den Konstruktor in JavaScript vor. Freunde, die ihn benötigen, können darauf verweisen.
Definition und Verwendung
Die Konstruktoreigenschaft gibt einen Verweis auf die Array-Funktion zurück, die dieses Objekt erstellt hat.
Syntax
object.constructor
Konstruktor, Konstruktor, wir alle kennen diesen Namen, Konstruktor ist immer Zeiger an den Konstruktor, der das aktuelle Objekt erstellt hat.
Hier ist zu beachten, dass jede Funktion ein Prototypattribut hat und der Konstrukteur dieses Prototyps auf diese Funktion verweist. Als wir den Prototyp dieser Funktion änderten, kam es zu einem Unfall . Zum Beispiel
function Person(name,age){ this.name = name; this.age = age; } Person.prototype.getAge = function(){ return this.age; } Person.prototype.getName = function(){ return this.name; } var p = new Person("Nicholas",18); console.log(p.constructor); //Person(name, age) console.log(p.getAge()); //18 console.log(p.getName()); //Nicholas
Aber wenn es so ist:
function Person(name,age){ this.name = name; this.age = age; } Person.prototype = { getName:function(){ return this.name; }, getAge:function(){ return this.age; } } var p = new Person("Nicholas",18); console.log(p.constructor); //Object() console.log(p.getAge()); //18 console.log(p.getName()); //Nicholas
Infolgedessen hat sich der Konstruktor geändert .
Der Grund dafür ist, dass der Prototyp selbst auch ein Objekt ist. Der obige Code entspricht
Person.prototype = new Object({ getName:function(){ return this.name; }, getAge:function(){ return this.age; } });
, da der Konstruktor immer darauf zeigt der Konstruktor, der das aktuelle Objekt erstellt, ist es nicht schwer zu verstehen, dass die Ausgabe von p.constructor im obigen Code Object ist.
Was soll ich tun, wenn der Konstrukteur nach der Änderung des Prototyps immer noch möchte, dass er auf Person verweist? Ganz einfach, weisen Sie Person.prototype.constructor einfach direkt einen Wert zu:
Person.prototype = { constructor:Person, getName:function(){ return this.name; }, getAge:function(){ return this.age; } }
Das Obige ist der vom Herausgeber eingeführte Konstruktor in JavaScript. Weitere verwandte Tutorials finden Sie unter JavaScript-Video-Tutorial!