Maison > interface Web > js tutoriel > Quand devriez-vous utiliser « Object.create » plutôt que « new » en JavaScript ?

Quand devriez-vous utiliser « Object.create » plutôt que « new » en JavaScript ?

Linda Hamilton
Libérer: 2024-11-21 08:15:10
original
888 Les gens l'ont consulté

When Should You Use `Object.create` over `new` in JavaScript?

Exploiter "Object.create" par rapport à "new" pour l'instanciation d'objet

Dans JavaScript 1.9.3 et ECMAScript 5, le "Object. La méthode create" fournit une approche alternative à la création d'objets au-delà du mot-clé traditionnel "new". Cette question explore comment utiliser « Object.create » pour remplacer « new » dans un exemple de code :

var UserA = function(nameParam) {
    this.id = MY_GLOBAL.nextId();
    this.name = nameParam;
}
UserA.prototype.sayHello = function() {
    console.log('Hello '+ this.name);
}
var bob = new UserA('bob');
bob.sayHello();
Copier après la connexion

Comprendre l'héritage différentiel avec Object.create

"Object.create" offre des avantages significatifs dans la mise en œuvre de l'héritage différentiel, où les objets héritent des propriétés d'autres objets plutôt que de classes. Dans l'exemple ci-dessus, l'héritage différentiel peut être implémenté comme suit :

var userB = {
  sayHello: function() {
    console.log('Hello '+ this.name);
  }
};

var bob = Object.create(userB, {
  'id': {
    value: MY_GLOBAL.nextId(),
    enumerable: true
  },
  'name': {
    value: 'Bob',
    enumerable: true
  }
});
Copier après la connexion

Ici, "bob" hérite de la méthode "sayHello" de "userB" tandis que ses propriétés "id" et "name" sont initialisées séparément. . Cette approche offre une plus grande flexibilité dans la création d'objets.

Contrôle des attributs de propriété d'objet

Un autre avantage de "Object.create" réside dans sa capacité à contrôler les attributs de propriété d'objet (énumérables , inscriptible ou configurable) via le littéral d'objet utilisé dans le deuxième argument. Ce contrôle granulaire permet de définir le comportement et l'immuabilité des propriétés personnalisées lorsque vous le souhaitez.

En résumé, "Object.create" offre une alternative puissante au "nouveau" en prenant en charge l'héritage différentiel et le contrôle des attributs de propriété, offrant une plus grande flexibilité et contrôle en programmation orientée objet 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!

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