Maison > interface Web > js tutoriel > Pourquoi « this.var » est-il nécessaire pour les variables d'objet en JavaScript ?

Pourquoi « this.var » est-il nécessaire pour les variables d'objet en JavaScript ?

DDD
Libérer: 2024-12-16 12:45:14
original
675 Les gens l'ont consulté

Why is `this.var` Necessary for Object Variables in JavaScript?

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
Copier après la connexion

Exemple : Avec "this.var"

function Foo() {
    this.bar = 0;
    this.getBar = function() { return this.bar; }
}

const foo = new Foo();
console.log(foo.getBar()); // 0
Copier après la connexion

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"
Copier après la connexion

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!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal