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

Une brève discussion sur les connaissances constructor_basic en javascript

亚连
亚连original
2018-05-21 10:16:20831parcourir

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

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

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;
  }
});

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;
  }
}

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!

Déclaration:
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