Comprendre le mot-clé « this » dans les littéraux d'objet JavaScript
Dans les littéraux d'objet en JavaScript, le comportement du mot-clé « this » peut être très différent à partir d’autres langages de programmation. Voici une explication complète de son fonctionnement.
Liaison au moment de l'appel
Contrairement à d'autres langages à liaison tardive, JavaScript lie "ceci" au moment de l'appel, pas pendant la compilation. temps ou durée d'exécution. Cela signifie que la valeur de "this" dépend de la façon dont la fonction est appelée.
Règles de liaison
Les règles de liaison pour "this" dans les littéraux d'objet JavaScript sont les suivantes suit :
Exemple d'utilisation Cas
Pour illustrer les différentes règles de liaison :
const obj = { foo: "Foo", bar() { console.log(this.foo); // "Foo" - "this" refers to the object }, }; obj.bar(); // Calls the method, binding "this" to the object
function MyDate(date) { this.date = date; } const obj1 = { foo: new Date(), bar: new MyDate(this.foo), // Error: this.foo is undefined }; const obj2 = { foo: new Date(), bar: new MyDate(obj2.foo), // Works: "this" refers to obj2 };
Dans le premier exemple, "this" fait référence à l'objet "obj" car la méthode est appelée comme une méthode objet. Dans le deuxième exemple, "this" n'est pas défini dans "obj1" car la fonction est appelée sans aucun contexte d'objet. Dans "obj2", "this" fait référence à "obj2" car la fonction est explicitement appelée avec l'objet "this".
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!