Variables estáticas en JavaScript

Harshit Jindal 12 octubre 2023
  1. Utilice la propiedad de una función para crear variables estáticas en JavaScript
  2. Utilice IIFE (Immediately Invoked Function Expression) para crear variables estáticas en JavaScript
  3. Utilice el arguments.callee para crear variables estáticas en JavaScript
  4. Utilice constructores para crear variables estáticas en JavaScript
Variables estáticas en JavaScript

Este tutorial presenta cómo crear variables estáticas en JavaScript. Las variables estáticas son variables, normalmente utilizadas en funciones, que mantienen su valor entre llamadas a funciones. La palabra clave static ayuda a definir una propiedad o método estático de una clase.

Utilice la propiedad de una función para crear variables estáticas en JavaScript

Las funciones en JavaScript son objetos y pueden tener propiedades. Entonces, podemos crear variables estáticas declarando las propiedades de la función. Mantienen sus valores como variables globales y no se pueden modificar fuera de las funciones, lo que las hace mucho más ordenadas que las variables globales.

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

Llamar a la función anterior varias veces aumenta el valor del contador y no se puede acceder a la función externa como las variables globales que detienen todo el desorden.

Utilice IIFE (Immediately Invoked Function Expression) para crear variables estáticas en JavaScript

IIFE son funciones que se ejecutan tan pronto como se definen. Está formado por dos partes:

  1. Una función anónima con un alcance léxico encerrado por el operador de agrupación ().
  2. Expresión de función que es interpretada directamente por JavaScript.
var incr = (function() {
  var i = 1;
  return function() {
    return i++;
  }
})();
incr();  // returns 1
incr();  // returns 2

Cada vez que se llama a la función, el contador i aumenta en uno. i es inaccesible en el exterior porque es propiedad de una función, al igual que una variable estática típica dentro de una clase.

Utilice el arguments.callee para crear variables estáticas en JavaScript

Podemos usar arguments.callee para almacenar variables estáticas en JavaScript. Se refiere a la función que se está ejecutando actualmente, y podemos adjuntarle propiedades directamente como lo haríamos con un objeto de función.

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

Este método es bastante similar al método 1, la única diferencia es que, en lugar de adjuntar propiedades directamente, estamos usando arguments.callee para agregar propiedades a la función que se está ejecutando actualmente.

Utilice constructores para crear variables estáticas en JavaScript

Este método es la versión equivalente de lenguajes orientados a objetos fuertemente tipados como C++ / Java / C#. Intentamos asignar variables a un tipo completo y no a todas las instancias.

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();

Aquí creamos la función de construcción delftClass y luego asignamos una propiedad estática que no tiene nada que ver con la instancia creada. JavaScript trata las funciones como objetos, por lo que al ser un objeto, podemos asignar propiedades a una función. Todas las instancias compartirán la variable estática.

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

Artículo relacionado - JavaScript Variable