La propriété constructeur renvoie une référence à la fonction de tableau qui a créé cet objet. Cet article vous présentera le constructeur en JavaScript. Les amis qui en ont besoin peuvent s'y référer.
Définition et utilisation
La propriété constructeur renvoie une référence à la fonction de tableau qui a créé cet objet.
Syntaxe
object.constructor
constructeur, constructeur, nous connaissons tous ce nom, le constructeur est toujours Pointeur au constructeur qui a créé l'objet actuel.
Une chose à noter ici est que chaque fonction a un attribut de prototype, et le constructeur de ce prototype pointe vers cette fonction. À ce moment-là, lorsque nous avons modifié le prototype de cette fonction, un accident s'est produit. . Tel que
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
Mais si c'est comme ça :
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
Du coup, le constructeur a changé .
La raison est que le prototype lui-même est également un objet. Le code ci-dessus est équivalent à
Person.prototype = new Object({ getName:function(){ return this.name; }, getAge:function(){ return this.age; } });
car le constructeur pointe toujours vers. le constructeur qui crée l'objet actuel, alors il n'est pas difficile de comprendre que la sortie de p.constructor dans le code ci-dessus est Object.
Que dois-je faire si le constructeur, après avoir modifié le prototype, souhaite toujours qu'il pointe vers Person ? Simple, attribuez simplement une valeur à Person.prototype.constructor directement :
Person.prototype = { constructor:Person, getName:function(){ return this.name; }, getAge:function(){ return this.age; } }
Ce qui précède est le constructeur en JavaScript introduit par l'éditeur. Pour plus de didacticiels connexes, veuillez visiter . Tutoriel vidéo JavaScript !