Maison > interface Web > js tutoriel > le corps du texte

Object.create vs new : quand utiliser lequel pour l'héritage JavaScript ?

Barbara Streisand
Libérer: 2024-11-15 12:06:03
original
999 Les gens l'ont consulté

Object.create vs. new: When to Use Which for JavaScript Inheritance?

Héritage JavaScript : Object.create vs new

En JavaScript, l'héritage peut être obtenu par diverses méthodes. Deux approches couramment discutées utilisent le nouveau mot-clé et Object.create. Lors de l'exploration de l'héritage, le grand nombre d'options disponibles peut être décourageant.

Pour clarifier la manière la plus acceptée d'obtenir l'héritage en JavaScript, explorons les différences entre Object.create et new.

Object.create

Object.create est utilisé pour créer un nouvel objet qui hérite d'un autre objet. Il n'invoque pas la fonction constructeur de l'objet parent. Ceci est utile lorsque vous souhaitez uniquement créer un nouvel objet qui hérite des propriétés et méthodes spécifiques d'un objet parent.

const baseModel = {
  property1: "value1",
  method1: function() {}
};

const newModel = Object.create(baseModel);
Copier après la connexion

Dans cet exemple, newModel hérite de la propriété1 et de la méthode1 de baseModel.

new

Le mot-clé new appelle la fonction constructeur d'une classe ou d'un objet et crée une nouvelle instance de cette classe ou de cet objet. Il invoque la fonction constructeur et initialise ainsi le nouvel objet avec des propriétés et des méthodes spécifiques.

class BaseModel {
  constructor(property1) {
    this.property1 = property1;
  }

  method1() {}
}

const newModel = new BaseModel("value1");
Copier après la connexion

Dans cet exemple, newModel est une instance de la classe BaseModel avec la propriété1 initialisée à "value1".

Choisir la bonne approche

Le choix entre Object.create et new dépend si vous devez créer un nouvel objet qui hérite des propriétés et des méthodes ou invoquer la fonction constructeur du parent object.

  • Utilisez Object.create lorsque vous souhaitez uniquement créer un objet qui hérite d'un autre objet sans appeler le constructeur.
  • Utilisez new lorsque vous devez créer une instance d'un classe ou objet et invoquez son constructeur.

Dans le scénario donné, vous souhaitez disposer d'un modèle d'objet de base que vous pouvez étendre avec RestModel ou LocalStorageModel. Utiliser Object.create (ou sa cale) est la bonne méthode car vous ne souhaitez pas créer une nouvelle instance de Model et appeler son constructeur.

RestModel.prototype = Object.create(Model.prototype);
Copier après la connexion

Si vous souhaitez appeler le constructeur Model sur RestModels, utilisez plutôt call() ou apply() :

function RestModel() {
    Model.call(this); // apply Model's constructor on the new object
    ...
}
Copier après la connexion

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!

source:php.cn
Déclaration de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal