Maison > interface Web > js tutoriel > Comment les variables statiques peuvent-elles être implémentées en JavaScript ?

Comment les variables statiques peuvent-elles être implémentées en JavaScript ?

Susan Sarandon
Libérer: 2024-12-01 20:59:11
original
187 Les gens l'ont consulté

How Can Static Variables Be Implemented in JavaScript?

Variables statiques en JavaScript

Dans la programmation orientée objet, les variables statiques sont associées à une classe plutôt qu'à ses instances. En JavaScript, qui suit un modèle d'héritage basé sur un prototype, le concept de variables statiques peut être réalisé grâce à diverses approches.

Approche des fonctions de constructeur :

Avant l'introduction des classes ES6, JavaScript utilisait des fonctions de constructeur pour la création d'objets. Dans la fonction constructeur, vous pouvez définir des variables privées qui ne sont accessibles que dans la portée de cette fonction. Les variables et méthodes publiques, en revanche, peuvent être affectées à l'objet this de l'instance. De plus, vous pouvez ajouter des propriétés statiques à l'objet fonction constructeur lui-même, qui seront partagées par toutes les instances.

Considérez l'exemple suivant :

function MyClass() {
  var privateVariable = "foo";

  this.publicVariable = "bar";

  this.privilegedMethod = function() {
    alert(privateVariable);
  };
}

// Instance method available to all instances (loaded once)
MyClass.prototype.publicMethod = function() {
  alert(this.publicVariable);
};

// Static property shared by all instances
MyClass.staticProperty = "baz";

var myInstance = new MyClass();
Copier après la connexion

Dans cet exemple, staticProperty est défini dans la fonction MyClass et est accessible à toutes les instances de MyClass.

Syntaxe de classe ES6 Approche :

ES6 a introduit le mot-clé class pour déclarer les classes. Avec les classes, vous pouvez définir des propriétés ou des méthodes statiques à l'aide du mot-clé static. Ces membres statiques sont accessibles via le nom de la classe lui-même.

Voici l'exemple précédent implémenté avec les classes ES6 :

class MyClass {
  constructor() {
    const privateVariable = "private value";
    this.publicVariable = "public value";

    this.privilegedMethod = function() {
      console.log(privateVariable);
    };
  }

  publicMethod() {
    console.log(this.publicVariable);
  }

  static staticProperty = "static value";

  static staticMethod() {
    console.log(this.staticProperty);
  }
}

var myInstance = new MyClass();
myInstance.publicMethod(); // "public value"
myInstance.privilegedMethod(); // "private value"
MyClass.staticMethod(); // "static value"
Copier après la connexion

Les deux approches fournissent des moyens de créer des variables statiques en JavaScript. La syntaxe de classe ES6 offre une méthode plus propre et plus concise, tandis que l'approche de fonction constructeur offre plus de flexibilité pour accéder aux variables privées dans les méthodes d'instance.

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