Apply your JS skills to key Mozilla projects as an MDN Fellow! http://mzl.la/MDNFellowship

mozilla
Vos résultats de recherche

    Object.prototype.propertyIsEnumerable()

    Résumé

    La méthode propertyIsEnumerable() renvoie un booléen qui indique si la propriété donnée est énumérable.

    Syntaxe

    obj.propertyIsEnumerable(prop)

    Paramètres

    prop
    Le nom de la propriété dont on souhaite savoir si elle est énumérable ou non.

    Description

    Chaque objet possède une méthode propertyIsEnumerable. Cette méthode est utilisée afin de savoir s'il est possible d'énumérer la propriété donnée au moyen d'une boucle for...in. Cela concerne uniquement les propriétés propres à l'objet (celles qui ne sont pas héritées via la chaîne de prototypes). Si un objet ne possède pas la propriété, cette méthode renverra false.

    Exemples

    Utiliser propertyIsEnumerable

    Dans l'exemple qui suit, on illustre comment utiliser propertyIsEnumerable sur les objets et tableaux :

    var o = {};
    var a = [];
    o.prop = 'est énumérable';
    a[0] = 'est énumérable';
    
    o.propertyIsEnumerable('prop');   // renvoie true
    a.propertyIsEnumerable(0);        // renvoie true
    

    Objets natifs et objets définis par l'utilisateur

    Dans l'exemple ci-dessous, on illustre l'énumérabilité des propriétés des objets natifs et celle des objets tiers, définis dans les scripts :

    var a = ['est énumérable'];
    
    a.propertyIsEnumerable(0);          // renvoie true
    a.propertyIsEnumerable('length');   // renvoie false
    
    Math.propertyIsEnumerable('random');   // renvoie false
    this.propertyIsEnumerable('Math');     // renvoie false
    

    Propriétés héritées et propriétés propres

    var a = [];
    a.propertyIsEnumerable('constructor');         // renvoie false
    
    function premierConstructeur() {
      this.propriété = 'non énumérable';
    }
    
    premierConstructeur.prototype.premièreMéthode = function() {};
    
    function secondConstructeur() {
      this.méthode = function méthode() { return 'énumérable'; };
    }
    
    secondConstructeur.prototype = new premierConstructeur;
    secondConstructeur.prototype.constructor = secondConstructeur;
    
    var o = new secondConstructeur();
    o.propArbitraire = 'is enumerable';
    
    o.propertyIsEnumerable('propArbitraire');   // renvoie true
    o.propertyIsEnumerable('méthode');          // renvoie true
    o.propertyIsEnumerable('propriété');        // renvoie false
    
    o.propriété = 'énumérable';
    
    o.propertyIsEnumerable('propriété');        // renvoie true
    
    // Ces instructions renvoient false car propertyIsEnumerable 
    // ne prend pas en compte la chaîne de prototypes
    o.propertyIsEnumerable('prototype');   // renvoie false
    o.propertyIsEnumerable('constructor'); // renvoie false
    o.propertyIsEnumerable('premièreMéthode'); // renvoie false
    

    Spécifications

    Spécification Statut Commentaires
    Troisième édition d'ECMAScript. Standard Définition initiale.
    ECMAScript 5.1 (ECMA-262)
    La définition de 'Object.prototype.propertyIsEnumerable' dans cette spécification.
    Standard  
    ECMAScript 6 (ECMA-262)
    La définition de 'Object.prototype.propertyIsEnumerable' dans cette spécification.
    Draft  

    Compatibilité des navigateurs

    Fonctionnalité Chrome Firefox (Gecko) Internet Explorer Opera Safari
    Support simple (Oui) (Oui) (Oui) (Oui) (Oui)
    Fonctionnalité Android Chrome pour Android Firefox Mobile (Gecko) IE Mobile Opera Mobile Safari Mobile
    Support simple (Oui) (Oui) (Oui) (Oui) (Oui) (Oui)

    Notes relatives à Gecko

    À partir de JavaScript 1.8.1 (Firefox 3.6), propertyIsEnumerable('prototype') renvoie false au lieu de true ; ce qui est donc conforme à ECMAScript 5.

    Voir aussi

    Étiquettes et contributeurs liés au document

    Contributors to this page: BenoitL, Jeremie, SphinxKnight, teoli
    Dernière mise à jour par : SphinxKnight,