"Si un trabajador quiere hacer bien su trabajo, primero debe afilar sus herramientas." - Confucio, "Las Analectas de Confucio. Lu Linggong"
Página delantera > Programación > ¿Cómo recuperar propiedades heredadas no enumerables en JavaScript?

¿Cómo recuperar propiedades heredadas no enumerables en JavaScript?

Publicado el 2024-11-13
Navegar:837

How to Retrieve Inherited Non-Enumerable Properties in JavaScript?

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.

Último tutorial Más>

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