Maison >interface Web >js tutoriel >Comprendre les caractéristiques et les usages des prototypes et chaînes de prototypes

Comprendre les caractéristiques et les usages des prototypes et chaînes de prototypes

王林
王林original
2024-01-10 12:15:001259parcourir

Comprendre les caractéristiques et les usages des prototypes et chaînes de prototypes

Explorez les caractéristiques et les applications des prototypes et des chaînes de prototypes

1. Que sont les prototypes et les chaînes de prototypes

En JavaScript, chaque objet a un objet prototype. Un objet prototype est également un objet et il peut avoir des propriétés et des méthodes. Les objets en JavaScript sont basés sur des prototypes, ce qui signifie qu'un objet peut hériter des propriétés et des méthodes d'un autre objet.

L'objet prototype de l'objet peut pointer vers l'objet prototype de l'objet via l'attribut __proto__属性来访问。这个__proto__, qui est une référence à l'objet prototype. Grâce à la chaîne de prototypes, les objets peuvent rechercher des propriétés et des méthodes tout au long de la chaîne de prototypes.

2. Caractéristiques des prototypes

  1. Les objets prototypes des objets sont partagés. En JavaScript, lorsque l'on crée un nouvel objet, il est automatiquement associé à un objet prototype. Plusieurs objets peuvent être associés au même objet prototype, partageant ainsi des propriétés et des méthodes dans l'objet prototype.

Exemple de code :

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

Person.prototype.greet = function() {
  console.log('Hello, ' + this.name + '!');
};

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

console.log(person1.__proto__ === person2.__proto__);  // true
  1. Les objets peuvent utiliser les propriétés et les méthodes des objets prototypes. Lorsque nous accédons à une propriété d'un objet ou appelons une méthode sur un objet, si l'objet lui-même ne possède pas cette propriété ou cette méthode, il recherchera le long de la chaîne de prototypes.

Exemple de code :

person1.greet();  // Hello, Alice!

console.log(person1.hasOwnProperty('name'));  // true,对象自身有name属性
console.log(person1.hasOwnProperty('greet'));  // false,对象自身没有greet方法

console.log(person1.__proto__.hasOwnProperty('greet'));  // true,原型对象有greet方法

person1.name = 'Eve';

console.log(person1.hasOwnProperty('name'));  // true,对象自身有name属性,不会修改原型对象的属性

3. Caractéristiques de la chaîne prototype

  1. La chaîne prototype est une relation entre des objets. Grâce à la chaîne de prototypes, un objet peut rechercher des propriétés et des méthodes niveau par niveau jusqu'à ce qu'il trouve ou atteigne le sommet de la chaîne de prototypes.
  2. La chaîne prototype est linéaire. Dans la chaîne de prototypes, chaque objet n'a qu'un seul prototype, son objet parent.

Exemple de code :

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

function Cat(name, color) {
  this.name = name;
  this.color = color;
}

Cat.prototype = new Animal();

var cat = new Cat('Tom', 'blue');

console.log(cat instanceof Cat);  // true
console.log(cat instanceof Animal);  // true

console.log(cat.hasOwnProperty('name'));  // true,对象自身有name属性
console.log(cat.hasOwnProperty('color'));  // true,对象自身有color属性

console.log(cat.__proto__ === Cat.prototype);  // true
console.log(Cat.prototype.__proto__ === Animal.prototype);  // true
console.log(Animal.prototype.__proto__ === Object.prototype);  // true,原型链的顶端是Object.prototype

4. Application du prototype et de la chaîne de prototypes

  1. Héritage : grâce à la chaîne de prototypes, la relation d'héritage entre les objets peut être réalisée. L'objet prototype de l'objet enfant pointe vers l'objet parent, afin que l'objet enfant puisse hériter des propriétés et méthodes de l'objet parent.

Exemple de code :

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

Animal.prototype.eat = function() {
  console.log(this.name + ' is eating.');
};

function Cat(name, color) {
  this.name = name;
  this.color = color;
}

Cat.prototype = new Animal();

var cat = new Cat('Tom', 'blue');

cat.eat();  // Tom is eating.
  1. Partage de propriétés et de méthodes : grâce à des objets prototypes, le partage de propriétés et de méthodes entre plusieurs objets peut être réalisé. Cela économise de l'espace mémoire, surtout si plusieurs instances doivent partager les mêmes propriétés et méthodes.

Exemple de code :

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

Person.prototype.sayHi = function() {
  console.log('Hi, I am ' + this.name);
};

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

person1.sayHi();  // Hi, I am Alice
person2.sayHi();  // Hi, I am Bob

Résumé :

Le prototype et la chaîne de prototypes sont des concepts importants en JavaScript. Ils forment le mécanisme d'héritage et de partage entre les objets. Grâce aux prototypes et aux chaînes de prototypes, nous pouvons mieux organiser et gérer les propriétés et les méthodes des objets, et améliorer la réutilisabilité et la maintenabilité du code. Dans le développement réel, une compréhension approfondie et une maîtrise de l'utilisation des caractéristiques et des applications des prototypes et des chaînes de prototypes contribueront à améliorer les compétences en programmation 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