Javascript : La nécessité de "this.var" pour les variables d'objet
Dans certains langages de programmation comme C, déclarer des variables d'objet en utilisant "this ->variable" est souvent facultatif lorsque la variable fait partie de la portée de la classe. Cependant, en Javascript, l'utilisation de "this.var" pour chaque variable d'un objet est cruciale.
Pourquoi "this.var" est obligatoire
Javascript utilise un unique modèle d'héritage prototypique au lieu de systèmes basés sur les classes. Les objets créés à l'aide du mot-clé "new" héritent des propriétés et des méthodes de leur objet prototype.
Lors de la définition d'une méthode dans une fonction constructeur d'objet, le mot-clé "this" fait référence à l'objet en cours de création. L'attribution de propriétés sans utiliser "this" crée des variables locales au sein de la méthode, qui ne sont pas accessibles en dehors de la fonction.
Exemple : sans "this.var"
function Foo() { bar = 0; getBar = function() { return bar; } } const foo = new Foo(); console.log(foo.getBar()); // ReferenceError: bar is not defined
Exemple : Avec "this.var"
function Foo() { this.bar = 0; this.getBar = function() { return this.bar; } } const foo = new Foo(); console.log(foo.getBar()); // 0
Alternative Approche : Fermeture
Pour créer des variables privées dans un objet, les développeurs Javascript utilisent souvent une approche de fermeture. En définissant des variables locales à l'intérieur de la fonction constructeur et en renvoyant des méthodes privilégiées qui accèdent à ces variables, il est possible de préserver les attributs privés tout en exposant les méthodes publiques.
Exemple : utilisation de Closure
function Foo() { let bar = "foo"; this.getBar = function() { return bar; }; } const foo = new Foo(); console.log(foo.getBar()); // "foo"
Conclusion
Bien que l'utilisation de "this.var" puisse sembler verbeuse, il est essentiel en Javascript pour garantir que les variables d'objet sont accessibles dans les méthodes et maintenir la distinction entre les variables locales et au niveau de l'objet. Alternativement, l'utilisation de fermetures permet de créer des variables privées dans des objets, améliorant ainsi l'encapsulation et la sécurité des données.
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!