Comportement du mot clé "this" dans les littéraux d'objet Javascript
Dans un littéral d'objet, le mot clé "this" sert d'espace réservé pour l'objet lui-même. Cependant, son comportement peut varier en fonction de la condition dans laquelle il est appelé.
Dans votre code :
var MyDate = function(date) { this.date = date; }; var obj1 = { foo: new Date(), bar: new MyDate(this.foo) // this.foo is undefined }; var obj2 = {}; obj2.foo = new Date(); obj2.bar = new MyDate(this.foo); // this.foo is undefined var obj3 = { foo: new Date(), bar: new MyDate(obj3.foo) }; var obj4 = {}; obj4.foo = new Date(); obj4.bar = new MyDate(obj4.foo);
Comprendre "cette" liaison
Le mot-clé "this" de Javascript présente une liaison tardive, ce qui signifie que sa valeur n'est pas déterminée tant que la fonction n'est pas invoquée. Dans votre cas :
Scénario 1 et 2 :
Scénarios 3 et 4 :
Conclusion
Le comportement du mot-clé "this" dans l'objet Les littéraux dépendent du contexte dans lequel la fonction est invoquée. S'il n'est pas explicitement lié à un objet, il s'agit par défaut de l'objet global. Cependant, lorsqu'il est appelé en tant que méthode d'un objet, il fait référence à cet objet spécifique, garantissant un accès approprié aux propriétés et méthodes de l'objet.
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!