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!