Maison > Article > interface Web > Interprétation détaillée de la programmation Js OOP pour créer des objets
Maintenant, je vais vous apporter une compréhension complète de la programmation Js OOP pour créer des objets. Permettez-moi de le partager avec vous maintenant et de le donner comme référence pour tout le monde.
L'orientation objet est une méthode de compréhension et d'abstraction du monde réel. C'est le produit du développement de la technologie de programmation informatique jusqu'à un certain stade.
La signification de l'objet
L'objet peut être une voiture, une personne, un animal, un texte, une forme ou tout ce qui existe , etc.
Les objets ont :
Attributs ------- Certaines propriétés spécifiques de l'objet.
Méthode-------Ce que l'objet peut faire.
Les événements ------- peuvent répondre à des choses qui arrivent aux objets.
Nous pouvons comprendre l'orientation objet en créant un objet d'une personne
Personne :
Deux mains, deux pieds, une tête et Can courir.
Les mains, les pieds et la tête sont des attributs humains, et courir est une méthode humaine.
Tout d'abord, créons un objet de la manière la plus simple
var person = { head: "one", hand: "two", foot: "two", run : function(){ console.log("running"); } }
Cette méthode n'est pas pratique du tout, car elle crée un objet séparé, et cet objet est différent de tout objet commun. la structure n’a aucun lien.
Ensuite, on utilise le constructeur pour créer un objet
var Person = function(){//注意,首字母大写 this.head = "one", this.hand = "two", this.foot = "two", this.run = function(){ alert("running"); } } var Joan = new Person(); document.write(Joan.run())// "running"
C'est l'objet créé à l'aide du constructeur, puis on ajoute une ligne de code pour voir
var Niki = new Person(); alert(Joan==Niki) //false;
Oui, deux instances d'objet différentes sont maintenant créées.
Chaque fonction en JavaScript a un attribut prototype. Si une fonction est utilisée comme constructeur, cet attribut sera automatiquement appelé via new pour créer le prototype de l'objet
console.log(Joan)
Vous pouvez voyez qu'il existe un __proto__:Person, où __proto__ est la chaîne de prototypes de Joan. Elle pointe vers le prototype de Person.
Lorsque JS crée un objet (qu'il s'agisse d'un objet normal ou d'un objet fonction), tous ont un attribut intégré appelé __proto__, qui est utilisé pour pointer vers le prototype d'objet prototype de l'objet fonction qui l'a créé.
Une certaine compréhension de la chaîne de prototypes est écrite en détail dans le livre JavaScript Advanced Programming. Si vous êtes intéressé, vous pouvez le consulter. Des documents pdf sont également disponibles en ligne. Cependant, il est recommandé d'acheter ce livre et de prendre en charge la version originale.
Ensuite, toute modification apportée à la propriété prototype de prototype peut être appliquée à chaque objet d'instance construit avec new Person(), qu'il soit créé avant ou après la modification. Ajoutez une nouvelle fonction pour Person.prototype. Plus précisément comme suit :
var Person = function(){//注意,首字母大写 this.head = "one", this.hand = "two", this.foot = "two" } Person.prototype.run = function(){ alert("running"); } var Joan = new Person(); Joan.run()// "running" alert(Joan.__proto__===Person.prototype)//'true'
Vous pouvez voir que la méthode créée dans le prototype peut être appelée et que la chaîne de prototypes de Joan pointe vers le prototype de Person.
Regardez à nouveau :
var Niki = new Person();//"runing" Person.prototype.run = function(){ alert("running running") } Joan.run()//"running running" Niki.run()//"running running"
Regardez, modifiez la méthode prototype de Person. Toutes les méthodes dans les instances d'objet créées par new Person() ont été modifiées, car les méthodes partagées par toutes les instances. ont été modifiés. Il s’agit de la même méthode prototype exécutée. Il s'agit d'une application de prototypes.
J'ai compilé ce qui précède pour vous, j'espère que cela vous sera utile à l'avenir.
Articles connexes :
Native js implémente la fonction de compte à rebours des jours fériés (code joint)
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!