Maison > interface Web > js tutoriel > Une brève discussion sur les connaissances constructor_basic en javascript

Une brève discussion sur les connaissances constructor_basic en javascript

亚连
Libérer: 2018-05-21 10:16:20
original
937 Les gens l'ont consulté

Maintenant, je vais vous apporter une brève discussion sur le constructeur en javascript. Permettez-moi de le partager avec vous maintenant et de le donner comme référence pour tout le monde.

constructeur, constructeur, nous connaissons tous ce nom constructeur pointe toujours vers le constructeur qui crée 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. Cela se produit lorsque nous modifions le prototype de cette fonction. Comme

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 tel est le cas :

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 aussi 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

Parce que le constructeur pointe toujours vers le constructeur qui crée l'objet actuel, ce n'est pas difficile. pour comprendre le code ci-dessus p .constructor génère un objet.

Que dois-je faire si je souhaite toujours que le constructeur pointe vers Person après avoir modifié le prototype ? C'est 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 ce que j'ai compilé pour tout le monde. J'espère que cela sera utile à tout le monde à l'avenir.

Articles connexes :

Une implémentation simple du recadrage et du stockage d'images à l'aide de Javascript

À propos du tableau JavaScript ( array ) Comment utiliser l'objet

Utilisez Javascript pour recadrer l'image et la stocker de manière simple

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

É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