Création d'objets sans parenthèses avec le "nouvel" opérateur
La création d'objets avec le "nouvel" opérateur en utilisant l'ancienne méthode :
const obj = new Foo;
est valide et défini dans le standard ECMAScript. L'omission des parenthèses n'est autorisée que pour l'opérateur "nouveau" lorsqu'il n'y a aucun argument dans l'appel de fonction.
Les deux méthodes de création d'objet obtiennent le même résultat, mais il existe des différences subtiles. Lors de l'utilisation de la syntaxe sans parenthèses, le moteur fournit implicitement les parenthèses, ce qui peut entraîner un comportement inattendu si le code est modifié ultérieurement. Par exemple, si vous insérez accidentellement un argument après avoir ajouté des parenthèses :
const obj = new Foo(argument);
le code sera interrompu car l'opérateur "nouveau" ne peut pas être invoqué avec des arguments lorsqu'il est créé sans parenthèses.
Sur le d'un autre côté, utiliser les parenthèses avec une liste d'arguments vide déclare explicitement l'absence d'arguments, évitant ainsi de telles erreurs. De plus, JSLint recommande d'utiliser des parenthèses, car il détecte les parenthèses manquantes lors de l'appel de constructeurs.
Bien que les deux formulaires soient valides, l'utilisation de parenthèses est préférable pour des raisons de cohérence, de clarté et pour éviter des pièges potentiels.
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!