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

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

DDD
Libérer: 2024-11-08 22:36:02
original
511 Les gens l'ont consulté

How to Retrieve Inherited Non-Enumerable Properties in JavaScript?

Récupération des propriétés non énumérables héritées

En JavaScript, l'accès aux propriétés des objets repose sur diverses méthodes adaptées à des exigences spécifiques. Cependant, lorsqu'il s'agit d'obtenir des propriétés non énumérables et non propres, il n'existe pas de mécanisme simple.

Pour résoudre ce problème, une fonction personnalisée peut être utilisée qui combine Object.getOwnPropertyNames() pour obtenir des propriétés non énumérables. et parcourt la chaîne de prototypes pour récupérer ceux hérités.

function getAllProperties(obj) {
  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;
}

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

Dans cet exemple, [1, 2, 3] est une propriété héritée, et la fonction la récupère avec succès sans hériter de son statut d'énumération. Cette approche donne aux développeurs la possibilité d'accéder à des propriétés héritées non énumérables, ce qui est crucial pour certains scénarios impliquant des prototypes et l'héritage d'objets.

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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal