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
DDDoriginal
2024-11-08 22:36:02525parcourir

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]));

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!

Déclaration:
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