Ir al contenido

Clase Javascript con métodos privados

Hemos visto como crear atributos privados definidos dentro de una clase en Javascript. Ahora crearemos métodos privados que nos permitan acceder a esa información.

En la siguiente definición vemos como podemos crear métodos públicos. Los cuales se pueden invocar desde cualquier parte del código JavaScript.

function Rectangulo(base,altura) {
this.base = base;
this.altura = altura;
this.area = function() { return this.base * this.altura; }
}

Pero, si nos queremos volver orientados a objetos en el más puro de los sentidos, una de las preguntas sería ¿Cómo puedo crear métodos privados?

Recordamos que los métodos privados son aquellos métodos que se pueden llamar desde métodos de la clase, pero nunca de forma externa a la clase.

En este caso vamos a añadir un método que incremente en uno la altura. Pero haremos que el método sea privado. Para que el método solo sea privado dejamos de utilizar el elemento this.

Así, los métodos privados nos quedarían de la siguiente forma:

function Rectangulo(nbase,naltura) {
var base = nbase;
var altura = naltura;
function incBase() { base++; }
function incAltura() { altura++; }
[this.inc](http://this.inc/) = function() {
incBase();
incAltura();
}
this.area = function() { return base * altura; }
}

Vemos que los métodos incBase() e incAltura() son métodos privados, definidos como simples funciones y que acceden a propiedades privadas (base y altura).

De igual manera, hemos creado un método público, llamado inc(), que invoca a estos métodos privados. Y que será el que podamos llamar desde código JavaScript externo.

var miRectangulo = new Rectangulo(4,3);
[miRectangulo.inc](http://mirectangulo.inc/)();
alert(miRectangulo.area());
Foto de Víctor Cuervo

Víctor Cuervo

Programador, Arquitecto IT, álter ego de Línea de Código, amante de las tecnologías, generador de conocimiento y facilitador del aprendizaje.

Descarga el código de Clase Javascript con métodos privados

Crear una clase Javascript con métodos privados para encapsular la funcionalidad.

Descargar código