Valeurs de retour pour les constructeurs qui contournent la référence "this"
Lors de l'appel d'un constructeur à l'aide du nouveau mot-clé, le comportement par défaut est pour le constructeur pour renvoyer l'objet nouvellement créé (appelé "this"). Cependant, il existe des circonstances spécifiques dans lesquelles un constructeur peut renvoyer une valeur différente, empêchant ainsi l'affectation de "this" à l'objet nouvellement créé.
Selon la spécification ECMAScript, étape 8 de [[Construct]] La propriété interne définit le comportement de retour comme suit :
Si le type de la valeur renvoyée par la fonction constructeur (Result(6)) n'est pas un objet :
- The value returned by the constructor will be returned instead of "`this`".
Par conséquent, pour renvoyer une valeur autre que "this" d'un constructeur :
Exemple :
function Foo() { return { name: "sample" }; } var foo = new Foo(); console.log(foo instanceof Foo); // false
Dans ce cas, puisque le Foo Le constructeur renvoie un objet qui n'est pas une instance du constructeur Foo, (la nouvelle instance Foo() de Foo) sera évaluée à false.
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!