Clase con atributos privados en Javascript
En los ejemplos que hemos visto de orientación a objetos con Javascript: Crear un objeto en Javscript y Crear un objeto con métodos en Javascript, hemos podido comprobar que los atributos de la clase eran variables públicas. Es decir, podían ser accedidas desde el código Javascript de manera directa.
Si queremos que no se tenga acceso directo, sino que sea mediante método, deberemos hacer que los atributos sean privados. Veamos cómo hacerlo.
Atributos públicos
Sección titulada «Atributos públicos»Los atributos públicos serían definidos de la siguiente forma:
function Rectangulo(alto,ancho) { this.alto = alto; this.ancho = ancho;}Y pueden ser accedidos de la siguiente forma:
var r = new Rectangulo(4,3);alert(r.alto);Atributos privados
Sección titulada «Atributos privados»Para declararlos privados, dejamos de utilizar la cláusula this y pasamos a definirlos como variables. Jugando, en este caso, con el ámbito de uso de las variables en Javascript.
Las definiríamos de la siguiente forma:
function Rectangulo(alto,ancho) { var alto = alto; var ancho = ancho;}De esta forma, el código de acceso directo:
var r = new Rectangulo(4,3);alert(r.alto);Devolvería undefined.
Métodos públicos para acceder a atributos privados
Sección titulada «Métodos públicos para acceder a atributos privados»En este caso tendríamos que proporcionar unos métodos públicos para acceder a estos atributos privados:
function Rectangulo(alto,ancho) { var alto = alto; var ancho = ancho;
this.getAlto = function() { return alto; }
this.getAncho = function() { return ancho; }}Y el acceso mediante estos métodos:
var r = new Rectangulo(4,3);alert(r.getAlto());Descarga el código de Clase con atributos privados en Javascript
Un ejemplo de manejo de clases en Javascript en el que podremos crear una clase con atributos privados en Javascript.