Variabili statiche in JavaScript

Harshit Jindal 12 ottobre 2023
  1. Usa la proprietà di una funzione per creare variabili statiche in JavaScript
  2. Usa IIFE (Immediately Invoked Function Expression) per creare variabili statiche in JavaScript
  3. Usa arguments.callee per creare variabili statiche in JavaScript
  4. Utilizza i costruttori per creare variabili statiche in JavaScript
Variabili statiche in JavaScript

Questo tutorial introduce come creare variabili statiche in JavaScript. Le variabili statiche sono variabili, tipicamente utilizzate nelle funzioni, che mantengono il loro valore tra le chiamate di funzione. La parola chiave static aiuta a definire una proprietà statica o un metodo di una classe.

Usa la proprietà di una funzione per creare variabili statiche in JavaScript

Le funzioni in JavaScript sono oggetti e possono avere proprietà. Quindi, possiamo creare variabili statiche dichiarando le proprietà della funzione. Mantengono i loro valori come variabili globali e non possono essere modificati al di fuori delle funzioni, rendendoli molto più ordinati delle variabili globali.

function getId() {
  if (typeof getId.counter == 'undefined') {
    getId.counter = 0;
  }
  alert(++getId.counter);
}

Chiamare la funzione sopra più volte aumenta il valore del contatore e non è possibile accedervi al di fuori di funzioni come le variabili globali che fermano tutto il casino.

Usa IIFE (Immediately Invoked Function Expression) per creare variabili statiche in JavaScript

Gli IIFE sono funzioni che vengono eseguite non appena vengono definite. Consiste di due parti:

  1. Una funzione anonima con un ambito lessicale racchiuso dall’operatore di raggruppamento ().
  2. Espressione di funzione interpretata direttamente da JavaScript.
var incr = (function() {
  var i = 1;
  return function() {
    return i++;
  }
})();
incr();  // returns 1
incr();  // returns 2

Ogni volta che viene chiamata la funzione, il contatore i aumenta di uno. i è inaccessibile all’esterno perché è la proprietà di una funzione, proprio come una tipica variabile statica all’interno di una classe.

Usa arguments.callee per creare variabili statiche in JavaScript

Possiamo usare arguments.callee per memorizzare variabili statiche in JavaScript. Si riferisce alla funzione attualmente in esecuzione e possiamo associarle proprietà direttamente come faremmo con un oggetto funzione.

function() {
  arguments.callee.myStaticVar = arguments.callee.myStaticVar || 1;
  arguments.callee.myStaticVar++;
  alert(arguments.callee.myStaticVar);
}

Questo metodo è abbastanza simile al metodo 1, l’unica differenza è che invece di collegare direttamente le proprietà, stiamo usando arguments.callee per aggiungere proprietà alla funzione attualmente in esecuzione.

Utilizza i costruttori per creare variabili statiche in JavaScript

Questo metodo è la versione equivalente di linguaggi orientati agli oggetti fortemente tipizzati come C++ / Java / C#. Cerchiamo di assegnare variabili a un intero tipo e non a tutte le istanze.

function delftClass() {
  var privateVariable = 'foo';
  this.publicVariable = 'bar';
  this.privilegedMethod = function() {
    alert(privateVariable);
  };
}
delftClass.prototype.publicMethod = function() {
  alert(this.publicVariable);
};

delftClass.staticProperty = 'baz';
var myInstance = new delftClass();

Qui creiamo la funzione di costruzione delftClass e quindi assegniamo una proprietà statica che non ha nulla a che fare con l’istanza creata. JavaScript tratta le funzioni come oggetti, quindi essendo un oggetto, possiamo assegnare proprietà a una funzione. Tutte le istanze condivideranno la variabile statica.

Harshit Jindal avatar Harshit Jindal avatar

Harshit Jindal has done his Bachelors in Computer Science Engineering(2021) from DTU. He has always been a problem solver and now turned that into his profession. Currently working at M365 Cloud Security team(Torus) on Cloud Security Services and Datacenter Buildout Automation.

LinkedIn

Articolo correlato - JavaScript Variable