Utiliser "ceci". dans les variables d'objet Javascript
En Javascript, contrairement à C , les variables doivent être explicitement préfixées par "this". pour faire référence à l'objet auquel ils appartiennent. Il s'agit d'une différence clé dans la programmation orientée objet entre les deux langages.
Le mot-clé "this" en Javascript représente le contexte actuel, qui est l'objet sur lequel la fonction est appelée. Lorsque vous déclarez une variable sans "this.", elle devient une variable locale dans la portée de cette fonction. Pour accéder à une propriété de l'objet à partir d'une fonction, vous devez utiliser "this". suivi du nom de la propriété.
Considérez le code suivant :
function foo() { bar = 0; // This creates a local variable this.getBar = function() { return bar; } // This creates a privileged method }
Dans ce code, "bar" est une variable locale dans la fonction "foo", tandis que "getBar" est une méthode privilégiée qui a accès à la variable locale. Sans utiliser "this.", "getBar" ne pourrait pas accéder à "bar".
Cette approche consistant à utiliser "this". est nécessaire pour toutes les variables auxquelles vous souhaitez accéder à partir des méthodes objet. Cependant, Javascript vous permet de définir des méthodes sur l'objet prototype plutôt que sur des objets d'instance. Les méthodes définies sur le prototype sont héritées par toutes les instances de cet objet. Dans ce cas, vous pouvez éviter d’utiliser « ceci ». pour ces méthodes. Voici un exemple :
function Foo() { this.bar = 0; } Foo.prototype.getBar = function() { return this.bar; }
Dans ce code, "getBar" est défini sur le prototype, donc les instances de "Foo" héritent de cette méthode et peuvent accéder à "bar" sans préfixer "this.".
En bref, en utilisant « ceci ». est essentiel pour accéder aux propriétés des objets à partir des fonctions/méthodes définies dans les objets d'instance. Cependant, cela peut être évité en définissant des méthodes sur le prototype.
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!