Maison >interface Web >js tutoriel >Le « nouveau » mot-clé de JavaScript est-il plus utile que nuisible ?

Le « nouveau » mot-clé de JavaScript est-il plus utile que nuisible ?

Mary-Kate Olsen
Mary-Kate Olsenoriginal
2024-12-13 07:25:13478parcourir

Is JavaScript's `new` Keyword More Helpful Than Harmful?

Le « nouveau » mot-clé de JavaScript est-il nocif ?

Le « nouveau » mot-clé de JavaScript a suscité la controverse, certains s'opposant à son utilisation en raison de la perception risques. Cependant, un examen plus approfondi révèle de nombreux avantages à utiliser « nouveau ».

Avantages de l'utilisation de « nouveau »

  • Héritage de prototype : "new" permet l'héritage de prototypes, un mécanisme puissant pour la réutilisation du code.
  • Performance : en utilisant le prototype, "nouveau" évite la surcharge liée à l'attribution de méthodes à chaque nouvel objet, ce qui entraîne une création plus rapide et une empreinte mémoire réduite.

Inconvénient du "nouveau"

  • Échec silencieux : Si « nouveau » est omis involontairement, le code échoue silencieusement sans erreur.

Atténuer l'inconvénient

Pour remédier à cet inconvénient, une simple vérification peut être ajoutée à chaque fonction :

function foo() {
  // If "new" is omitted, silently correct the problem
  if (!(this instanceof foo)) {
    return new foo();
  }

  // Constructor logic follows...
}

Cela garantit que l'objet est toujours construit correctement, éliminant ainsi le risque de échecs.

Pérennité

ES5 a introduit le mode strict, qui interdit certaines constructions, y compris "arguments.callee". Par conséquent, la vérification mentionnée ci-dessus devra peut-être être modifiée en mode strict :

function foo() {
  // Check for "new" using new.target (ES6)
  if (!(new.target)) {
    throw new Error("Constructor called as a function");
  }

  // Constructor logic follows...
}

Conclusion

Bien que le mot-clé "nouveau" ait ses réserves, il reste un outil crucial en JavaScript. En comprenant ses avantages et en atténuant ses risques potentiels, les développeurs peuvent exploiter en toute sécurité la puissance du « nouveau » pour la création d'objets et la réutilisation de code.

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!

Déclaration:
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