Maison > interface Web > js tutoriel > le corps du texte

Une analyse approfondie du constructeur en JavaScript

PHPz
Libérer: 2018-09-28 14:01:05
original
1803 Les gens l'ont consulté

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
Copier après la connexion

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
Copier après la connexion

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;
}
});
Copier après la connexion

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;
}
}
Copier après la connexion

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 !

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal