"Si un ouvrier veut bien faire son travail, il doit d'abord affûter ses outils." - Confucius, "Les Entretiens de Confucius. Lu Linggong"
Page de garde > La programmation > Quand choisir Object.create plutôt que new pour l’héritage JavaScript ?

Quand choisir Object.create plutôt que new pour l’héritage JavaScript ?

Publié le 2024-11-19
Parcourir:240

When to Choose Object.create Over new for JavaScript Inheritance?

Héritage JavaScript : Object.create vs. new

Le concept d'héritage en JavaScript peut prêter à confusion, car il existe différentes approches pour y parvenir. il. Cet article vise à clarifier les méthodes les plus acceptées et à fournir une solution pour votre scénario spécifique.

Comprendre Object.create et new

Object.create est une méthode qui crée un nouvel objet en héritant d'un objet existant. Ceci est utile lorsque vous souhaitez créer un objet de base, puis l'étendre avec des propriétés et des méthodes supplémentaires. La syntaxe de Object.create est :

Object.create(prototype[, propertiesObject])

D'autre part, le nouveau mot-clé est utilisé pour créer une nouvelle instance d'un objet et invoquer sa fonction constructeur. La syntaxe de new est :

new ConstructorFunction([arguments])

Choisir la bonne méthode d'héritage

Le choix entre Object.create et le nouveau dépend de vos besoins spécifiques. Object.create est idéal pour créer des objets de base dont vous souhaitez hériter sans appeler leurs constructeurs. Par exemple :

const Model = {
    // Base object properties and methods...
};

const RestModel = Object.create(Model);

Si, toutefois, vous souhaitez appeler la fonction constructeur de l'objet de base sur l'objet héritant, vous devez utiliser new. Par exemple :

function Model() {
    // Base object constructor...
}

function RestModel() {
    Model.call(this);
    // Additional properties and methods...
}

Solution pour votre scénario

Dans votre cas, vous souhaitez hériter du RestModel de l'objet de base du modèle. Pour y parvenir en utilisant Object.create, procédez comme suit :

RestModel.prototype = Object.create(Model.prototype);

Cela créera un nouveau prototype RestModel qui hérite du Modèle prototype.

Dernier tutoriel Plus>

Clause de non-responsabilité: Toutes les ressources fournies proviennent en partie d'Internet. En cas de violation de vos droits d'auteur ou d'autres droits et intérêts, veuillez expliquer les raisons détaillées et fournir une preuve du droit d'auteur ou des droits et intérêts, puis l'envoyer à l'adresse e-mail : [email protected]. Nous nous en occuperons pour vous dans les plus brefs délais.

Copyright© 2022 湘ICP备2022001581号-3