Las variables privadas y públicas son dos formas de ocultar información. Un objeto puede tener variables privadas y públicas (y también variables protegidas, en algunos idiomas). Todos los miembros (funciones y variables) del objeto propietario pueden acceder a las variables privadas, pero ningún otro objeto puede acceder a ellas. Entonces, esta información está oculta. Todos los miembros del propietario pueden acceder a las variables públicas, así como otros objetos que pueden acceder al propietario.
Las variables estáticas están relacionadas con una clase. Entran en existencia tan pronto como una clase entra en existencia. No importa si la clase tiene objetos o no, las variables estáticas estarían allí. En lo que respecta a las variables no estáticas, son propiedad de objetos (instancias de una clase). Cada objeto tiene su propia copia de variables no estáticas.
Ahora, JavaScript de forma nativa no admite estos conceptos. Pero puede usar las técnicas de cierre de JavaScript para lograr resultados similares.
Variable pública y privada
El truco básico para definir una variable privada es limitar el alcance de las variables dentro de la definición de clase para que no se pueda acceder a ellas a través de los objetos instanciados. P.ej:
- Cómo iniciar un sitio ASP.NET
- ¿Podemos aprender HTML, CSS y JavaScript simultáneamente?
- Además de la manipulación de la base de datos, ¿qué se puede hacer en el Back-End que no se puede hacer en el Front-End?
- ¿Cuál es el mejor libro para aprender PHP para principiantes?
- ¿Qué servicio recomendaría (y por qué) para la creación de un sitio web: thegrid, square space o wix?
función Class () { var privateVar = "¡Soy privado!"; this.publicVar = "¡Soy público!"; this.publicMethod = function () { volver privateVar; } }
Un nuevo objeto se puede definir como,
var obj = new Class();
Ahora, puede acceder al método público como:
obj.publicVar; //Returns "I am public!"
Pero no hay forma posible de acceder al privateVar
. Y como el concepto de ocultar información define, se puede acceder dentro del objeto. Por lo tanto, se puede acceder a publicMethod
en publicMethod
.
obj.publicMethod(); //Returns "I am private!"
Estas son todas las variables no estáticas, ya que cada objeto que cree de tipo Class
tendrá su propia copia de privateVar
y privateVar
.
Variables estáticas
Las variables estáticas son propiedad de la clase. Por lo tanto, debe acceder a ellos a través de la clase, no a través del objeto. El truco aquí es asignarlos a la propia definición de clase.
Class.staticVar = "I am static!";
Ahora puedes acceder a él usando:
Class.staticVar; //Returns "I am static!"
Tenga en cuenta que no puede acceder usando:
obj.staticVar; //Returns undefined
JavaScript es un lenguaje muy agradable y poderoso, si puedes entenderlo.