Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

187
Visualizações
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 Respostas
Responde à pergunta

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 Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda