Recuperar propiedades heredadas no enumerables
En JavaScript, el acceso a las propiedades de los objetos se basa en varios métodos adaptados a requisitos específicos. Sin embargo, cuando se trata de obtener propiedades no enumerables y no propias, no existe un mecanismo sencillo.
Para solucionar este problema, se puede utilizar una función personalizada que combine Object.getOwnPropertyNames() para obtener propiedades no enumerables. y recorre la cadena de prototipos para recuperar los heredados.
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]));
En este ejemplo, [1, 2, 3] es una propiedad heredada y la función la recupera correctamente sin heredar su estado de enumeración. Este enfoque brinda a los desarrolladores la capacidad de acceder a propiedades heredadas no enumerables, lo cual es crucial para ciertos escenarios que involucran prototipos y herencia de objetos.
Descargo de responsabilidad: Todos los recursos proporcionados provienen en parte de Internet. Si existe alguna infracción de sus derechos de autor u otros derechos e intereses, explique los motivos detallados y proporcione pruebas de los derechos de autor o derechos e intereses y luego envíelos al correo electrónico: [email protected]. Lo manejaremos por usted lo antes posible.
Copyright© 2022 湘ICP备2022001581号-3