Si estamos trabajando con objetos en Javascript, una de las cosas que nos puede ayudar es el saber si un determinado objeto tiene una propiedad en cuestión. Para acceder a ella.
Y es que solo podremos saber si el objeto tiene variables públicas, nunca variables privadas.
Lo primero que haremos será definir una clase e instanciar un objeto de esa clase:
function rectangulo(base,altura){
this.base = base;
var altura = altura;
this.calcularArea = function() { return this.base*this.altura; };
this.getBase = function() {return base;}
this.getAltura = function() {return altura;}
}
var r1 = new rectangulo(2,3);
Vemos que el objeto tiene una propiedad base que es pública y otra que es altura, la cual es privada. Para saber si un objeto tiene una propiedad utilizamos el método .hasOwnProperty, el cual recibe como parámetro el nombre de la propiedad sobre la cuál queremos conocer su existencia.
Así el código para saber si un objeto tiene una propiedad sería:
if (r1.hasOwnProperty("base"))
document.write("El objeto tiene la propiedad BASE");
else
document.write("El objeto NO tiene la propiedad BASE");
document.write("
");
if (r1.hasOwnProperty("altura"))
document.write("El objeto tiene la propiedad ALTURA");
else
document.write("El objeto NO tiene la propiedad ALTURA");
document.write("
");
if (r1.hasOwnProperty("area"))
document.write("El objeto tiene la propiedad AREA");
else
document.write("El objeto NO tiene la propiedad AREA");
Al ejecutar el código veremos que obtenemos el valor false para altura (ya que es una propiedad privada) y para área (ya que no existe). En cambio veremos el valor de true para base.