Constructeur, constructeur, nous connaissons tous ce nom. Le constructeur pointe toujours le constructeur qui crée l'objet actuel.
Une chose à noter ici est que chaque fonction a une propriété prototype, et le constructeur de ce prototype pointe vers cette fonction. À l'heure actuelle, lorsque nous modifions le prototype de cette fonction, un accident s'est produit. comme
Fonction Person (nom, âge) {this.name = name; this.age = age;} personne.prototype.getage = function () {return this.age;} personne.prototype.getName = function () {return this.name;} var p = new personne ("Nicholas", 18); console.log (p.Constructor); // personne (nom, âge) console.log (p.getage ()); //18Console.log (P.GetName ()); // NicholasMais si c'est le cas:
Fonction Person (nom, âge) {this.name = name; this.age = age;} personne.prototype = {getName: function () {return this.name; }, getage: function () {return this.age; }} var p = new personne ("Nicholas", 18); console.log (p.Contructor); // object () console.log (p.getage ()); //18Console.log (P.GetName ()); // NicholasEn conséquence, le constructeur a changé.
La raison en est que le prototype lui-même est également un objet, et le code ci-dessus est équivalent à
Personne.prototype = new objet ({getName: function () {return this.name;}, getage: function () {return this.age;}});Parce que le constructeur pointe toujours le constructeur qui crée l'objet actuel, il n'est pas difficile de comprendre que le code ci-dessus P.Contructor sort un objet.
Que dois-je faire si le constructeur après modification du prototype et veut toujours qu'il pointe vers la personne? Simple, attribuez simplement de la valeur à personne.prototype.constructeur:
Personne.prototype = {constructeur: personne, getName: function () {return this.name; }, getage: function () {return this.age; }}La brève discussion ci-dessus sur le constructeur en JavaScript est tout le contenu que je partage avec vous. J'espère que cela pourra vous donner une référence et j'espère que vous pourrez soutenir Wulin.com plus.