Aquí está la respuesta corta y precisa:
en JavaScript , cada objeto tiene un moño ch de pares clave-valor incorporados que tienen metainformación sobre el objeto. Cuando recorre todos los pares clave-valor usando for...in
construir/bucle para un objeto, también está recorriendo estos pares clave-valor de metainformación (que definitivamente no quiere).

Usando hasOwnPropery(property)
filtros-Out estos innecesario bucle a través de los meta-informaciones y directamente comprueba que es el parámetro de property
es propiedad dada de usuario en el objeto o no. Por filtra-fuera, quiero decir, que hasOwnProperty(property)
no se ve si, property
existe en la cadena de prototipos del objeto aka meta-información.
Devuelve booleano true/false
basado en eso.
Aquí se muestra un ejemplo:
var fruitObject = {"name": "Apple", "shape": "round", "taste": "sweet"};
console.log(fruitObject.hasOwnProperty("name")); //true
console.log(Object.prototype.hasOwnProperty("toString");) //true because in above snapshot you can see, that there is a function toString in meta-information
espero que sea claro!
http://stackoverflow.com/questions/2600085/hasownproperty-in-javascript –
Cuando hice esta pregunta, pensé que era una función que verificaba algunos html. Ahora lo veo comprobando un objeto o método de JavaScript para una 'variable' dentro de ese objeto o método. THX! – FLY
Eche un vistazo a https://developer.mozilla.org/es/JavaScript/Reference/Global_Objects/Object/HasOwnProperty –