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

126
Views
Variable estática local de JavaScript como en C/C++

A continuación se muestra un código que demuestra una variable local estática en C/C++. El contador se agregaría cada vez que se llame a btnTestOnclick; el contador se puede acumular.

 void btnTestOnclick() { static int counter = 0; counter++; }

Pero en el siguiente código JS,

 function btnTestOnclick() { class temp{ static counter=0; }; console.log(temp.counter); temp.counter+=1; }

Este contador temporal no se puede acumular, cada vez que es 0. Sé que mover la clase temporal fuera de la función funcionaría, pero se supone que esta clase es lógicamente local ya que solo btnTestOnclick la usaría.

¿Cómo piensas sobre ello?

about 4 years ago · Juan Pablo Isaza
1 answers
Answer question

0

Necesita un cierre donde se crea la variable persistente solo visible para btnTestOnclick . Use una expresión de función invocada inmediatamente .

 const btnTestOnclick = (() => { let counter = 0; return () => { counter++; // do other stuff with counter? }; })();

Dicho esto, personalmente considero que los IIFE están un poco desactualizados hoy en día. Si la sección de código en la que está escribiendo esto es tal que tiene miedo de que agregar otra variable a su alcance ( counter ) haga que las cosas sean más confusas de lo que sería ideal, es probable que sea hora de extraer parte de ese código en una independiente módulo

 let counter = 0; export const btnTestOnclick = () => { counter++; // do other stuff with counter? };

donde el archivo anterior no contiene nada más (y, por lo tanto, el counter está claramente limitado solo al btnTestOnclick exportado)

about 4 years ago · Juan Pablo Isaza 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!