Maison >interface Web >js tutoriel >Analyse des différences et fonctions des prototypes et chaînes de prototypes

Analyse des différences et fonctions des prototypes et chaînes de prototypes

PHPz
PHPzoriginal
2024-01-13 10:11:05463parcourir

Analyse des différences et fonctions des prototypes et chaînes de prototypes

Analyse des différences et des fonctions des prototypes et des chaînes de prototypes

En JavaScript, les prototypes et les chaînes de prototypes sont des concepts très importants en programmation orientée objet. Ils constituent non seulement la base de la compréhension des objets et de l'héritage en JavaScript, mais également la clé d'une compréhension plus approfondie de JavaScript. Cet article utilisera des exemples de code spécifiques pour analyser les différences et les fonctions des prototypes et des chaînes de prototypes.

  1. Prototypes

Les prototypes sont la base de l'héritage entre objets en JavaScript. Chaque objet possède un prototype, accessible via l'attribut __proto__. Un prototype est un objet ordinaire qui contient les propriétés et méthodes de l'objet hérité. __proto__属性来访问。原型是一个普通的对象,它包含被继承对象的属性和方法。

下面是一个简单的示例代码:

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

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

var person = new Person("Alice", 18);
person.sayHello(); // 输出: Hello, my name is Alice

在这个例子中,Person.prototype是一个原型对象,包含了sayHello方法。person对象通过new关键字构造实例,并通过原型链继承了Person.prototype中的方法。

  1. 原型链

原型链是一种对象之间通过原型关联起来的机制。一个对象的原型也可以是另一个对象,这种关联通过__proto__属性进行连接。当我们访问一个对象的属性或方法时,如果当前对象没有,则会沿着原型链向上查找,直到找到该属性或方法的定义。

下面继续沿用上面的示例代码:

function Student(name, age, grade) {
  Person.call(this, name, age);  // 调用父类的构造函数
  this.grade = grade;
}

Student.prototype = Object.create(Person.prototype);  // 继承父类的原型

Student.prototype.sayGoodbye = function() {
  console.log("Goodbye, my name is " + this.name);
};

var student = new Student("Bob", 20, 5);
student.sayHello();  // 输出: Hello, my name is Bob
student.sayGoodbye();  // 输出: Goodbye, my name is Bob

在这个例子中,我们定义了一个Student类,它通过Person.call(this, name, age)调用父类的构造函数,并通过Object.create(Person.prototype)继承了父类的原型。这样,Student实例对象student就能够访问并使用父类Person

Ce qui suit est un exemple de code simple :
    rrreee
  1. Dans cet exemple, Person.prototype est un objet prototype qui contient la méthode sayHello. L'objet person construit une instance via le mot-clé new et hérite des méthodes de Person.prototype via la chaîne de prototypes.
    1. Chaîne de prototypes

      La chaîne de prototypes est un mécanisme qui associe des objets via des prototypes. Le prototype d'un objet peut aussi être un autre objet, et cette association est connectée via l'attribut __proto__. Lorsque nous accédons à une propriété ou à une méthode d'un objet, si l'objet actuel n'en a pas, nous rechercherons le long de la chaîne de prototypes jusqu'à trouver la définition de la propriété ou de la méthode.

      Continuez à utiliser l'exemple de code ci-dessus ci-dessous :

      rrreee

      Dans cet exemple, nous définissons une classe Student, qui transmet Person.call(this, name, age) Appelez le constructeur de la classe parent et héritez du prototype de la classe parent via Object.create(Person.prototype). De cette manière, l'objet instance Student student peut accéder et utiliser les méthodes définies dans la classe parent Person.

    • Différence et fonction
    • La relation entre le prototype et la chaîne de prototypes est que chaque objet a un prototype, le prototype peut être utilisé pour définir des propriétés et des méthodes partagées, et la chaîne de prototypes est composée des prototypes de plusieurs objets chaînés. structure.
    • Le rôle du prototype est de partager des attributs et des méthodes entre les objets, ce qui peut réduire la consommation de mémoire et améliorer la réutilisabilité du code. Les objets héritent des propriétés et des méthodes des objets parents via la chaîne de prototypes, ce qui peut produire des effets similaires à l'héritage de classe et à la réécriture de méthodes dans la programmation orientée objet traditionnelle.

    La fonction de la chaîne de prototypes est de réaliser la relation d'héritage des propriétés et des méthodes entre les objets. Lorsque nous accédons aux propriétés ou aux méthodes d'un objet, le moteur JavaScript recherchera dans l'ordre de la chaîne de prototypes pour s'assurer que nous pouvons y accéder. les propriétés ou méthodes correctes.

    🎜Résumé : 🎜🎜🎜Le prototype est une propriété que possède chaque objet. Il définit les méthodes et les propriétés partagées par les objets. 🎜🎜La chaîne de prototypes est connectée via les propriétés prototypes des objets, formant un mécanisme d'héritage d'objets. 🎜🎜La relation entre le prototype et la chaîne de prototypes permet à JavaScript d'atteindre de puissantes capacités de programmation orientée objet. 🎜🎜🎜Grâce à l'explication et à l'exemple de code de cet article, nous pouvons mieux comprendre et appliquer le rôle du prototype et de la chaîne de prototypes en JavaScript, ce qui est très important pour maîtriser les objets et l'héritage 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