Comment le nouvel opérateur crée et initialise des objets en JavaScript
Le nouvel opérateur est un mot-clé puissant en JavaScript utilisé pour créer de nouveaux objets. Il joue un rôle crucial dans la programmation orientée objet mais peut être difficile à comprendre pleinement, notamment en ce qui concerne la chaîne de prototypes.
Comprendre le nouvel opérateur
Lors de l'utilisation l'opérateur new avec une fonction, les étapes suivantes se produisent en interne :
Un exemple d'implémentation
Pour démontrer la fonctionnalité du nouvel opérateur, voici une implémentation équivalente :
<code class="javascript">function NEW(f) { let obj, ret, proto; // Check if `f.prototype` is an object proto = f.prototype ? f.prototype : Object.prototype; // Create an object inheriting from `proto` obj = Object.create(proto); // Call the function with `obj` as `this` ret = f.apply(obj, Array.prototype.slice.call(arguments, 1)); // Return the object from the function or the newly created `obj` return Object(ret) === ret ? ret : obj; }</code>
Exemple d'utilisation
Considérez cet exemple :
<code class="javascript">function Foo(arg) { this.prop = arg; } Foo.prototype.inherited = 'baz'; let obj = NEW(Foo, 'bar'); console.log(obj.prop); // Output: "bar" console.log(obj.inherited); // Output: "baz" console.log(obj instanceof Foo); // Output: true</code>
Cela montre comment le nouvel opérateur crée un objet qui hérite du prototype de la fonction et permet d'accéder à ses propriétés et méthodes.
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!