Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

183
Vistas
JavaScript: cómo agregar un método no enumerable (no una propiedad) en Object.defineProperty

Quiero agregar un método (no una propiedad) a Array.prototype, pero no quiero que sea enumerable y arruine todo (... en...) en bibliotecas de terceros.

 //... Example: //... Only push the value if it is not false Array.prototype.pushValue = function(value){ if(value){ this.push(value); } } var pieces = []; pieces.pushValue(0); pieces.pushValue(1); pieces.pushValue(2); pieces.pushValue(null); console.log(pieces.join(",")); //outputs 1,2 for(var k in pieces){ console.log(k); //outputs 0,1 and pushValue }

Sé que puedo usar "hasOwnProperty" en mi código para detectar mis métodos personalizados, pero no puedo cambiar todo el código de bibliotecas de terceros para agregar esta verificación.

Independientemente de si es una buena práctica o no agregar un método a Array.prototype, ¿es posible agregarlo como no enumerable?

about 4 years ago · Santiago Trujillo
1 Respuestas
Responde la pregunta

0

Puedes usar Object.defineProperty() así:

 Object.defineProperty(Array.prototype, 'test', { value: () => console.log(1), enumerable: false, });

Este método permite una adición o modificación precisa de una propiedad en un objeto. La adición normal de propiedades a través de la asignación crea propiedades que se muestran durante la enumeración de propiedades (for...in loop o método Object.keys), cuyos valores se pueden cambiar y que se pueden eliminar. Este método permite cambiar estos detalles adicionales de sus valores predeterminados. De forma predeterminada, los valores agregados mediante Object.defineProperty() son inmutables y no enumerables.

about 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda