Maison > Article > interface Web > Un constructeur JavaScript peut-il renvoyer des valeurs autres que l'objet construit ?
Valeurs de retour du constructeur et opérateur [Instanceof]
En JavaScript, une fonction constructeur peut renvoyer des valeurs autres que l'objet construit. Comprendre ces circonstances est crucial pour éviter les erreurs d'exécution telles que les résultats inattendus de l'opérateur instanceof.
La spécification ECMAScript 3e édition définit la propriété [[Construct]], qui régit le comportement du constructeur. Selon la spécification :
Par conséquent, un constructeur peut renvoyer des valeurs non primitives (comme les fonctions ou tableaux) pour empêcher l'opérateur instanceof de renvoyer true.
Par exemple :
function Foo() { return []; } const foo = new Foo(); console.log(foo instanceof Foo); // false
Puisque le constructeur renvoie un tableau (non-objet), la vérification instanceof échoue. À l'inverse, renvoyer une valeur primitive (comme null ou undefined) renverrait toujours true.
En résumé, les valeurs renvoyées par un constructeur peuvent affecter l'instance de résultat. En comprenant les conditions décrites dans la propriété [[Construct]], les développeurs peuvent éviter tout comportement inattendu et garantir une vérification précise de l'héritage de classe.
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!