Les variables d'objet Javascript nécessitent-elles "ceci" ?
En Javascript, le concept de classes diffère de celui des langages comme C . L'héritage basé sur les classes fait défaut, laissant la place à l'héritage prototypique. Les objets et leurs propriétés jouent un rôle crucial.
Lors de la construction d'un objet à l'aide d'une fonction constructeur, le mot-clé "this" donne accès aux propriétés de l'objet. Prenons l'exemple suivant :
function Foo() { this.bar = 0; }
Dans ce constructeur, le mot-clé "this" associe la propriété "bar" à l'objet créé. Ne pas l'utiliser entraînerait l'erreur "la barre est undefined."
Cependant,开发者发现了一个技巧,使用构造函数作为闭包,创造私人"属性":
function Foo() { var bar = "foo"; this.getBar = function getter() { return bar; }; }
Dans ce Par exemple, la variable "bar" est déclarée localement, tandis que "getBar" est une méthode privilégiée qui y accède. Cette technique permet la création de variables privées non modifiables en externe.
Il est essentiel de noter que les méthodes déclarées sur le prototype n'ont pas accès aux variables locales au sein du constructeur. Ils peuvent cependant recourir à des méthodes privilégiées. Dans le code suivant, la méthode prototype "getFooBar" utilise la méthode "getBar" pour concaténer un suffixe :
Foo.prototype.getFooBar = function() { return this.getBar() + "bar"; }
Cela permet la création de propriétés à la fois publiques (méthodes prototypes) et privées (méthodes privilégiées). au sein d'un seul objet. Il est important de prendre en compte l'utilisation de la mémoire, car les méthodes privilégiées créent des objets de fonction distincts avec des chaînes de portée différentes. Pour un grand nombre d'instances, les méthodes prototypes sont préféré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!