Maison > interface Web > js tutoriel > Comment récupérer des noms de propriétés hérités non énumérables en JavaScript ?

Comment récupérer des noms de propriétés hérités non énumérables en JavaScript ?

Susan Sarandon
Libérer: 2024-11-09 07:57:02
original
863 Les gens l'ont consulté

How to Retrieve Non-Enumerable Inherited Property Names in JavaScript?

Obtention de noms de propriétés hérités non énumérables d'un objet en JavaScript

JavaScript fournit diverses méthodes pour accéder aux propriétés d'objet en fonction d'exigences spécifiques. Cependant, aucune de ces méthodes ne permet de récupérer des propriétés non énumérables et non propres. Cet article explore des approches alternatives pour extraire de telles propriétés.

Solution : tirer parti de getOwnPropertyNames et du chaînage de prototypes

Puisque Object.getOwnPropertyNames() peut récupérer des propriétés non énumérables, il peut être combiné avec un prototype de traversée de chaîne. La fonction JavaScript suivante, getAllProperties(), parcourt la chaîne de prototypes d'un objet et compile une liste de toutes ses propriétés non énumérables et non propres :

function getAllProperties(obj){</p><div class="code" style="position:relative; padding:0px; margin:0px;"><pre class="brush:php;toolbar:false">var allProps = []
  , curr = obj
do{
    var props = Object.getOwnPropertyNames(curr)
    props.forEach(function(prop){
        if (allProps.indexOf(prop) === -1)
            allProps.push(prop)
    })
}while(curr = Object.getPrototypeOf(curr))
return allProps
Copier après la connexion

}

Exemple Utilisation

Pour démontrer la fonctionnalité de la fonction getAllProperties(), considérez l'objet tableau suivant :

console.log(getAllProperties([1,2,3]));
Copier après la connexion

Sortie :

[ 'length' ]
Copier après la connexion

Les listes de sortie la propriété non énumérable 'length', qui appartient à la chaîne Array.prototype.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Recommandations populaires
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal