Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

182
Views
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 answers
Answer question

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 Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!