Maison > interface Web > js tutoriel > Quand dois-je utiliser « this.var » pour accéder aux variables dans les objets JavaScript ?

Quand dois-je utiliser « this.var » pour accéder aux variables dans les objets JavaScript ?

Barbara Streisand
Libérer: 2024-12-19 20:59:36
original
194 Les gens l'ont consulté

When Should I Use `this.var` to Access Variables in JavaScript Objects?

Accès aux variables d'objet en JavaScript : this.var ou pas ?

Dans le modèle de programmation orienté objet de JavaScript, il est courant de se demander si chaque La variable dans un objet nécessite le mot-clé this.

this.var vs. Local Variables

Contrairement au modèle basé sur les classes de C, JavaScript utilise l'héritage prototypique. Dans l'héritage prototypique, tout est un objet et les objets peuvent hériter d'autres objets.

En JavaScript, une fonction constructeur, invoquée avec le mot-clé new, crée de nouveaux objets et leur attribue des propriétés. Le mot-clé this au sein d'un constructeur fait référence à l'objet nouvellement créé.

Les méthodes, accessibles via le mot-clé this, sont des fonctions appelées sur des objets. Cependant, les variables locales déclarées dans la portée d'une méthode ne sont pas directement accessibles par ceci.

Exemple :

function Foo() {
    this.bar = 0;
    this.getBar = function() {
        return this.bar;
    };
}
Copier après la connexion

Dans cet exemple, this.bar fait référence à la barre propriété de l’instance Foo. Cependant, bar à l'intérieur de la méthode getBar fait référence à une variable locale qui n'est pas définie par défaut. Pour accéder à la propriété, vous devez utiliser this.bar.

Attributs privés via des fermetures

Pour créer des attributs privés, JavaScript s'appuie sur des fermetures. Les fonctions définies dans la portée d'un constructeur ont accès aux variables locales de ce constructeur. Ainsi, en créant des fonctions au sein d'un constructeur et en les exposant comme méthodes privilégiées, vous pouvez conserver des attributs privés.

Exemple :

function Foo() {
    var bar = "foo";
    this.getBar = function() {
        return bar;
    };
}
Copier après la connexion

Dans cet exemple, bar est une variable locale du constructeur Foo. La méthode getBar est une méthode privilégiée qui a accès à bar.

Méthodes prototypes et méthodes privilégiées

Les méthodes définies sur l'objet prototype sont héritées par toutes les instances. Cependant, ils n'ont pas accès aux méthodes privilégiées sauf si le prototype enfant hérite du prototype parent.

En résumé, bien que this.var soit requis pour accéder aux propriétés des objets depuis les méthodes, il n'est pas indispensable pour les variables locales. . Les méthodes privilégiées, définies comme des fermetures au sein du constructeur, fournissent un mécanisme de création d'attributs privés dans le modèle de programmation orienté objet de JavaScript.

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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal