¿Cómo validar en JavaScript si un objeto tiene una propiedad?

publicado por: Anonymous

Tengo el objeto equis, y supongamos que quiero el valor equis.valorFantasma

Pero yo no se si existe la propiedad valorFantasma, ¿cómo valido que exista antes de tomar su valor?

_x000D_

_x000D_

function funcion(){_x000D_
  //alert('boton presionado');_x000D_
  _x000D_
  var existePropiedadFantasma = false;_x000D_
  _x000D_
  var equis;_x000D_
  _x000D_
  existePropiedadFantasma = typeof equis.propiedadFantasma !== 'undefined';//equis.propiedadFantasma ? true:false;_x000D_
  _x000D_
  alert(existePropiedadFantasma ? "Si existe": "No Existe");_x000D_
}

_x000D_

<input type='button' onclick="funcion()" value='Obtener Valor'/>

_x000D_

_x000D_

_x000D_

Espero que me puedan ayudar. Gracias.

ZIUL… intente con tu respuesta y me sale el mismo error:
introducir la descripción de la imagen aquí

Algún ejemplo que si funcione?

solución

Debes tener en cuenta que tu variable equis es un undefined al momento de declararlo. Asimismo, podrías usar el método hasOwnProperty para verificar la existencia de una propiedad.

_x000D_

_x000D_

function TienePropiedad(objeto, propiedad){_x000D_
  return typeof objeto !== 'undefined' && objeto.hasOwnProperty(propiedad);_x000D_
}_x000D_
_x000D_
var equis;_x000D_
_x000D_
console.log(TienePropiedad(equis, "valorFantasma"));_x000D_
_x000D_
equis= {};_x000D_
equis.valorFantasma= "Mi propiedad";_x000D_
_x000D_
console.log(TienePropiedad(equis, "valorFantasma"));_x000D_
_x000D_
console.log(equis);

_x000D_

_x000D_

_x000D_

Resultado:

false
true
{
  "valorFantasma": "Mi propiedad"
}
Respondido por: Anonymous

Leave a Reply

Your email address will not be published. Required fields are marked *