Heim  >  Artikel  >  Web-Frontend  >  Eine eingehende Analyse des Konstruktors in JavaScript

Eine eingehende Analyse des Konstruktors in JavaScript

PHPz
PHPzOriginal
2016-05-16 15:04:551800Durchsuche

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!

Stellungnahme:
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

In Verbindung stehende Artikel

Mehr sehen