Maison >interface Web >js tutoriel >Quelles sont les méthodes de prototypage et de fermeture pour créer des objets personnalisés en JavaScript ?

Quelles sont les méthodes de prototypage et de fermeture pour créer des objets personnalisés en JavaScript ?

Patricia Arquette
Patricia Arquetteoriginal
2024-12-14 16:54:10478parcourir

What are the Prototyping and Closure Ways to Create Custom Objects in JavaScript?

Comment créer « correctement » un objet personnalisé en JavaScript

Créer des objets personnalisés

Il existe deux manières principales de créer des objets personnalisés en JavaScript : la méthode de prototypage et la méthode de fermeture.

Prototypage Façon

Avec cette méthode, les propriétés et méthodes de l'objet sont définies sur son prototype. L'exemple suivant crée un objet Shape et un objet Circle qui sous-classe la Shape :

function Shape(x, y) {
  this.x = x;
  this.y = y;
}

Shape.prototype.toString = function() {
  return 'Shape at ' + this.x + ', ' + this.y;
};

function Circle(x, y, r) {
  Shape.call(this, x, y); // Invoke base class constructor
  this.r = r;
}

Circle.prototype = new Shape(); // Create prototype inheritance link

Circle.prototype.toString = function() {
  return 'Circular ' + Shape.prototype.toString.call(this) + ' with radius ' + this.r;
};

Closure Way

Cette méthode n'utilise pas l'héritage. Au lieu de cela, chaque instance a ses propres copies de propriétés et de méthodes.

function Shape(x, y) {
  var that = this;

  this.x = x;
  this.y = y;

  this.toString = function() {
    return 'Shape at ' + that.x + ', ' + that.y;
  };
}

function Circle(x, y, r) {
  var that = this;

  Shape.call(this, x, y); // Invoke base class constructor
  this.r = r;

  var _baseToString = this.toString;
  this.toString = function() {
    return 'Circular ' + _baseToString.call(that) + ' with radius ' + that.r;
  };
};

Avantages et inconvénients

Mode de prototypage

  • Avantages : Efficace pour les hiérarchies d'objets volumineuses
  • Inconvénients : Plus complexe à implémenter, instance de travaux de l'opérateur

Closure Way

  • Avantages : Plus simple à mettre en œuvre, instances indépendantes
  • Inconvénients : Moins efficace, aucune instance directe de support

Choisir le bon Méthode

Le choix dépend des exigences spécifiques du projet. Pour les hiérarchies d'objets volumineuses avec plusieurs niveaux d'héritage, le prototypage peut être préféré. Pour les objets simples et indépendants, le mode de fermeture est souvent plus pratique.

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