mozilla
Los resultados de tu búsqueda

    Object.prototype.hasOwnProperty()

    Resumen

    El método hasOwnProperty() devuelve un booleano indicando si el objeto tiene la propiedad especificada.

    Sintaxis

    obj.hasOwnProperty(prop)

    Parámetros

    prop
    El nombre de la propiedad a buscar.

    Descripción

    Todo objeto descendiente de Object hereda el método hasOwnProperty. Este método puede ser usando para determinar si un objeto tiene la propiedad especificada como una propiedad directa de ese objeto; a diferencia del operador in , este método no elimina la cadena de prototipada del objeto.

    Ejemplos

    Ejemplo: usar hasOwnProperty para comprobar la existencia de una propiedad

    El siguiente ejemplo determina si el objeto o contiene una propiedad llamada prop:

    o = new Object();
    o.prop = 'exists';
    
    function changeO() {
      o.newprop = o.prop;
      delete o.prop;
    }
    
    o.hasOwnProperty('prop');   // returns true
    changeO();
    o.hasOwnProperty('prop');   // returns false

    Ejemplo: Directo versus propiedades heredadas

    El siguiente ejemplo diferencia entre propiedades directas y propiedades heredadas a través de la cadena prototype:

    o = new Object();
    o.prop = 'exists';
    o.hasOwnProperty('prop');             // returns true
    o.hasOwnProperty('toString');         // returns false
    o.hasOwnProperty('hasOwnProperty');   // returns false

    Ejemplo: Iterando sobre las propiedades de un objeto

    El siguiente ejemplo muestra como iterar sobre las propiedades de un objeto sin ejecutar sobre propiedades heredadas. Observe que el bucle for..in ya está no solo iterando elementos enumerables, por consiguiente uno no debería asumir que basado en la falta de propiedades no numerales mostrando en el bucle que hasOwnProperty por si misma no está solo es estrictamente para iterar elementos numerados (como con Object.getOwnPropertyNames()).

    var buz = {
        fog: 'stack'
    };
    
    for (var name in buz) {
        if (buz.hasOwnProperty(name)) {
            alert("this is fog (" + name + ") for sure. Value: " + buz[name]);
        }
        else {
            alert(name); // toString or something else
        }
    }

    Ejemplo: hasOwnProperty como una propiedad

    JavaScript no protege el nombre de la propiedad hasOwnProperty; en consecuencia, si existe la posibilidad  de que un objeto pudiera tener la propiedad con ese nombre, es necesario usar un externo hasOwnProperty para obtener los correctos resultados:

    var foo = {
        hasOwnProperty: function() {
            return false;
        },
        bar: 'Here be dragons'
    };
    
    foo.hasOwnProperty('bar'); // always returns false
    
    // Use another Object's hasOwnProperty and call it with 'this' set to foo
    ({}).hasOwnProperty.call(foo, 'bar'); // true
    
    // It's also possible to use the hasOwnProperty property from the Object property for this purpose
    Object.prototype.hasOwnProperty.call(foo, 'bar'); // true
    

    Observe que en el último caso no han habido nuevos objetos creados.

    Especificaciones

    Especificaciones Estado Comentario
    ECMAScript 3rd Edition. Implemented in JavaScript 1.5 Standard Initial definition.
    ECMAScript 5.1 (ECMA-262)
    The definition of 'Object.prototype.hasOwnProperty' in that specification.
    Standard  
    ECMAScript 6 (ECMA-262)
    The definition of 'Object.prototype.hasOwnProperty' in that specification.
    Draft  

    Compatibilidad de navegadores

    Feature Chrome Firefox (Gecko) Internet Explorer Opera Safari
    Basic support (Yes) (Yes) (Yes) (Yes) (Yes)
    Feature Android Chrome for Android Firefox Mobile (Gecko) IE Mobile Opera Mobile Safari Mobile
    Basic support (Yes) (Yes) (Yes) (Yes) (Yes) (Yes)

    Véase también

    Etiquetas y colaboradores del documento

    Contributors to this page: teoli, Siro_Diaz
    Última actualización por: teoli,