Maison  >  Article  >  interface Web  >  Analyse des différences et des applications du prototype et de la chaîne de prototypes

Analyse des différences et des applications du prototype et de la chaîne de prototypes

PHPz
PHPzoriginal
2024-01-10 11:47:11609parcourir

Analyse des différences et des applications du prototype et de la chaîne de prototypes

Comprendre les différences et les applications des prototypes et des chaînes de prototypes nécessite des exemples de code spécifiques

En JavaScript, le prototype (Prototype) et la chaîne de prototypes (Prototype Chain) sont un concept très important dans la programmation orientée objet. Comprendre leurs différences et comment les appliquer peut nous aider à mieux comprendre le modèle objet et le mécanisme d'héritage de JavaScript. Cet article expliquera les concepts de prototypes et de chaînes de prototypes et leurs applications à travers des exemples de code concrets.

Tout d’abord, jetons un coup d’œil au prototype. En JavaScript, chaque objet possède un prototype. Le prototype d'un objet est un objet qui contient un ensemble de propriétés et de méthodes. Lorsque nous accédons à une propriété ou une méthode d'un objet, si l'objet lui-même ne possède pas la propriété ou la méthode, JavaScript la recherchera automatiquement dans le prototype de l'objet. Ce processus de recherche est appelé recherche en chaîne de prototypes.

Nous pouvons créer un objet via la méthode Object.create() et spécifier son prototype. Par exemple :

var person = {
  name: "张三",
  age: 20,
  sayHello: function() {
    console.log("你好,我是" + this.name + ",今年" + this.age + "岁。");
  }
};

var student = Object.create(person);
student.name = "李四";
student.grade = 5;
student.sayHello(); // 输出:你好,我是李四,今年20岁。

Dans le code ci-dessus, nous avons créé un objet personne, qui a deux propriétés name et age, et une méthode sayHello. Ensuite, nous créons un objet étudiant à l'aide de la méthode Object.create() et spécifions son prototype comme personne. Ensuite, nous ajoutons une note d’attribut à l’objet étudiant. Enfin, lorsque nous appelons la méthode sayHello() de l'objet étudiant, puisque l'objet étudiant lui-même n'a pas de méthode sayHello(), JavaScript va rechercher dans son prototype personne, trouver la méthode correspondante et l'exécuter.

Ensuite, parlons de la chaîne de prototypes. En JavaScript, une chaîne de prototypes est composée d'une série d'objets, chaque objet possède un prototype, jusqu'à ce que le prototype du dernier objet soit nul. La structure de cette chaîne de prototypes est la suivante :

student ---> person ---> Object ---> null

Lorsque nous accédons aux propriétés ou méthodes d'un objet, JavaScript recherchera dans l'ordre de la chaîne de prototypes jusqu'à trouver les propriétés ou méthodes correspondantes, ou le prototype du dernier objet est trouvé jusqu'à. Si la propriété ou la méthode correspondante n'est finalement pas trouvée, undefined sera renvoyé.

Après avoir compris le concept de chaîne de prototypes, nous pouvons mieux comprendre son application à travers l'exemple suivant :

function Animal(name) {
  this.name = name;
}

Animal.prototype.sayHello = function() {
  console.log("你好,我是" + this.name + "。");
};

function Dog(name, breed) {
  Animal.call(this, name);
  this.breed = breed;
}

Dog.prototype = Object.create(Animal.prototype);
Dog.prototype.constructor = Dog;
Dog.prototype.bark = function() {
  console.log("汪汪!");
};

var dog = new Dog("旺财", "拉布拉多");
dog.sayHello(); // 输出:你好,我是旺财。
dog.bark(); // 输出:汪汪!

Dans le code ci-dessus, nous définissons deux constructeurs, Animal et Dog. Le constructeur Animal est utilisé pour créer des objets Animal, le Chien. Le constructeur est utilisé pour créer des objets chien. Grâce à l'instruction Object.create(Animal.prototype)语句我们将 Dog 的原型指定为 Animal 的原型,这样 Dog 对象就可以使用 Animal 对象的方法,比如 sayHello() 方法。通过Animal.call(this, name), nous appelons le constructeur Animal pour initialiser la propriété name de l'objet Dog. Ensuite, nous définissons une nouvelle méthode bark() sur le prototype Dog. Enfin, nous créons un objet Dog nommé dog et appelons ses méthodes sayHello() et bark().

Grâce aux exemples de code ci-dessus, nous avons une compréhension préliminaire des concepts de prototypes et de chaînes de prototypes, ainsi que de leurs applications. Les prototypes et les chaînes de prototypes sont des concepts très importants en JavaScript, et leur compréhension est cruciale pour écrire du code JavaScript de haute qualité. J'espère que cet article pourra vous être utile.

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