Hace un par de días leí este interesante artículo acerca de la comprobación de la existencia de una propiedad en un objeto de Javascript.
Y Nicholas claramente llegaba a la conclusión de que cuando se quiere comprobar la existencia de la propiedad independientemente de si se trata de un atributo propio o heredado del prototype del “objeto padre” (por llamar de alguna forma a la función a partir de la cual se construyó), la mejor opción es:
(atributo in objeto)
Y si lo que necesitas es comprobar un atributo propio del objeto (no heredado, es decir, definido sobre el objeto directamente y no existente en el “objeto padre”) puedes usar hasOwnProperty(). Pero por supuesto teniendo en cuenta una serie de restricciones como bien apuntaba Kangax:
- Cuidado con los Host Objects.
- Cuidado con propiedades definidas en ambos objetos al mismo tiempo.
- Y cuidado con algunas implementaciones del standard ECMAScript.
En definitiva, la cuestión es saber lo que estás haciendo y echarle un vistazo de vez en cuando al standard, además de comprobar resultados en los distintos navegadores antes de dar por cierta cualquier afirmación (eso es lo que tiene Javascript, nunca puedes estar seguro al 100% en el 99.9% de las situaciones).
0 comments ↓
There are no comments yet...Kick things off by filling out the form below.
Leave a Comment