Variabili statiche in JavaScript
- Usa la proprietà di una funzione per creare variabili statiche in JavaScript
-
Usa IIFE (
Immediately Invoked Function Expression
) per creare variabili statiche in JavaScript -
Usa
arguments.callee
per creare variabili statiche in JavaScript - Utilizza i costruttori per creare 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:
- Una funzione anonima con un ambito lessicale racchiuso dall’operatore di raggruppamento
()
. - 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 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