A menudo obtendrá el mismo resultado con o sin hasOwnProperty
, pero este último ignora las propiedades que se heredan en lugar de vivir directamente en el objeto en cuestión.
Considere este sistema de herencia básico. Los perros heredan de la clase principal de Animal.
function Animal(params) { this.is_animal = true; }
function Dog(params) { for (var i in params) this[i] = params[i]; }
Dog.prototype = new Animal();
var fido = new Dog({name: 'Fido'});
Si nos asomamos en fido
, hasOwnProperty
nos ayuda a determinar cuáles son sus propias propiedades (nombre) y que son heredadas.
for (var i in fido) if (fido.hasOwnProperty(i)) alert(i+' = '+fido[i]);
... Alertas name=Fido
pero no is_animal=true
.
cheque este violín cabo http://jsfiddle.net/gFmXM/1/ – goat
@ rambocoder-Gracias, ahora lo entiendo –