Maison >interface Web >js tutoriel >Object.create : une meilleure façon d'instancier des objets que « nouveau » ?
Javascript 1.9.3 / ECMAScript 5 a introduit Object.create, une méthode fortement préconisée par Douglas Crockford et d'autres. Cette méthode offre une alternative au mot-clé new traditionnel lors de l'instanciation d'objets.
Pour remplacer new par Object.create, examinons le code suivant :
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();
En supposant que MY_GLOBAL.nextId existe, nous peut instancier UserA à l'aide de Object.create 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 } });
L'un des avantages d'Object.create par rapport à new est qu'il permet l'héritage différentiel. Les objets peuvent directement hériter des propriétés d'autres objets sans avoir besoin d'une chaîne de prototypes. Cela se fait en passant un objet comme deuxième argument à Object.create, où vous pouvez définir les propriétés héritées.
Un autre avantage est sa flexibilité. Object.create vous permet de définir des attributs de propriété (énumérables, inscriptibles, configurables) à l'aide de la syntaxe des descripteurs de propriétés, vous offrant ainsi un meilleur contrôle sur le comportement des propriétés des objets.
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!