Maison >interface Web >js tutoriel >Que se passe-t-il lorsqu'un constructeur JavaScript renvoie une valeur non-objet ?
Comprendre les valeurs de retour des constructeurs en JavaScript
En JavaScript, les constructeurs sont invoqués à l'aide du nouveau mot-clé pour créer de nouveaux objets. Bien que le constructeur renvoie généralement ceci, certaines conditions peuvent entraîner le renvoi de valeurs différentes.
Circonstances du renvoi de valeurs autres que This
Le comportement est défini par le [ Propriété [Construct]] utilisée par le nouvel opérateur. Selon la spécification ECMA-262 3e édition :
Étape 7 : Si le type de la valeur renvoyée par la fonction constructeur (Result(6)) est non un objet, retournez Result(6).
Étape 8 : Sinon, retournez Result(1) (le nouvel objet).
Exemple :
Considérez le constructeur suivant :
function Foo() { return 1; }
Lorsqu'il est invoqué avec new, les étapes suivantes se produisent :
Ainsi, (nouvelle instance Foo() de Foo) === false car Foo a renvoyé un nombre, pas un objet.
Conclusion :
Lorsqu'un constructeur renvoie une valeur non-objet (par exemple, une primitive, nulle, non définie), celle-ci n'est pas renvoyée et le la valeur renvoyée par la fonction constructeur est renvoyée à la place.
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!