Maison >interface Web >js tutoriel >Une analyse approfondie du mécanisme de chaîne prototype en JavaScript

Une analyse approfondie du mécanisme de chaîne prototype en JavaScript

PHPz
PHPzoriginal
2024-02-18 19:20:06816parcourir

Une analyse approfondie du mécanisme de chaîne prototype en JavaScript

Explication détaillée de la chaîne de prototypes en JS

En Javascript, chaque objet a un prototype. Le prototype est un objet qui contient des propriétés et des méthodes partagées. La chaîne de prototypes est un mécanisme qui permet aux objets d'hériter et de partager des propriétés et. méthodes.

La chaîne de prototypes est implémentée via l'attribut _proto_ de chaque objet, qui pointe vers le prototype de l'objet. Si un objet ne trouve pas la propriété ou la méthode requise, il continue le long de la chaîne de prototypes jusqu'à ce qu'il trouve ou atteigne la fin de la chaîne de prototypes.

Regardons un exemple pour créer un constructeur appelé Person et son objet instance :

function Person(name, age) {
    this.name = name;
    this.age = age;
}

var person1 = new Person('Alice', 25);

Lors de l'utilisation de l'opérateur new pour créer un objet person1, les opérations suivantes seront effectuées :

  1. Créer un objet vide person1.
  2. Pointez l'attribut _proto_ de person1 vers le prototype du constructeur Person, qui est Person.prototype.
  3. Exécutez le constructeur Person, pointez-le vers person1 et attribuez les attributs name et age.

En fait, Person.prototype est le prototype de person1. Nous pouvons ajouter des méthodes et des attributs au prototype :

Person.prototype.sayHello = function() {
    console.log('Hello, my name is ' + this.name);
};

Maintenant, l'objet person1 peut utiliser la méthode sayHello :

person1.sayHello();  // 输出: Hello, my name is Alice

Lorsque nous appelons person1.sayHello( ), Javascript Tout d'abord, il recherche cette méthode dans l'objet person1. Si elle n'est pas trouvée, elle continuera à rechercher le long de la chaîne de prototypes dans Person.prototype et l'exécutera après l'avoir trouvée.

Si nous ajoutons un nouvel attribut dans Person.prototype, person1 peut également l'utiliser :

Person.prototype.gender = 'Female';
console.log(person1.gender);  // 输出: Female

La chaîne de prototypes peut également implémenter l'héritage, nous pouvons créer un nouveau constructeur Student et le laisser hériter de Person :

function Student(name, age, school) {
    Person.call(this, name, age);
    this.school = school;
}

Student.prototype = Object.create(Person.prototype);
Student.prototype.constructor = Student;

Dans ce qui précède code, nous utilisons la méthode Object.create() pour créer l'objet Student.prototype, pointons son attribut _proto_ vers Person.prototype et pointons le Student.prototype.constructor vers le constructeur Student.

Maintenant, nous pouvons créer un objet student1 et utiliser les propriétés et méthodes héritées de Person :

var student1 = new Student('Bob', 20, 'ABC School');

console.log(student1.name);   // 输出: Bob
console.log(student1.age);    // 输出: 20
student1.sayHello();          // 输出: Hello, my name is Bob
console.log(student1.school);  // 输出: ABC School

Dans l'exemple ci-dessus, l'objet student1 peut accéder aux propriétés et méthodes héritées de Person car à travers la chaîne de prototypes, il Ces propriétés et des méthodes peuvent être trouvées.

La chaîne de prototypes est un mécanisme important en Javascript pour implémenter l'héritage d'objets et les propriétés et méthodes partagées. Elle rend le code plus efficace et flexible. Lors de l'écriture de code Javascript, il est très important d'avoir une compréhension approfondie de la chaîne de prototypes.

Résumé :

  • Chaque objet a un prototype. Un prototype est un objet qui contient des propriétés et des méthodes partagées.
  • Grâce à l'attribut _proto_ de l'objet, vous pouvez implémenter la chaîne de prototypes et réaliser l'héritage et le partage des attributs et des méthodes.
  • La chaîne de prototypes est un mécanisme permettant d'implémenter l'héritage d'objets et les propriétés et méthodes partagées en Javascript.

J'espère qu'à travers l'explication de cet article, vous aurez une compréhension plus approfondie de la chaîne de prototypes en Javascript.

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