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

173
Views
¿Por qué no se puede acceder al alcance global en este caso?

Me enfrenté a este problema recientemente. Podría pasar el problema, pero no entendí el concepto detrás de él. Si prueba el fragmento, verá lo que está pasando. ¿Alguien puede explicarlo?

 function func1() { console.log('Func1 executed.'); }; const func2 = () => { console.log('Func2 executed.'); }; const test = () => { window['func1'](); //Working window['func2'](); //Not working };
 button { width: 200px; padding: 20px; font-size: large; cursor: pointer; border: 0; background: linear-gradient(to top right, gray, silver); color: white; border-radius: 7px; box-shadow: 0px 5px 7px silver; text-shadow: 0px 2px 2px rgba(0,0,0,0.5); }
 <button onclick='test()'>Execute</button>

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

0

La respuesta directa es:

Las variables globales inicializadas con let y const no se convierten en propiedades de window .

Ver:

const

Las constantes globales no se convierten en propiedades del objeto window , a diferencia de las variables var .

Fuente: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/const

y:

let

Al igual que const , let no crea propiedades del objeto window cuando se declara globalmente (en el ámbito superior).

Fuente: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/let

about 4 years ago · Juan Pablo Isaza Report

0

El problema es que realmente está llamando a un valor/variable ( const func2 = podría terminar con un int, por ejemplo). Debe pasar una función en sí misma a la window[Functioname]() .

Puede hacer esto a través de llamadas de función de segundo grado, consulte a continuación.

Bonito botón por cierto.

 function func1() { console.log('Func1 executed.'); }; const func2 = () => { console.log('Func2 executed.'); }; function func3(){ func2(); } const test = () => { window['func1'](); //Working window['func3'](); //Working window['func2'](); //Not working };
 button { width: 200px; padding: 20px; font-size: large; cursor: pointer; border: 0; background: linear-gradient(to top right, gray, silver); color: white; border-radius: 7px; box-shadow: 0px 5px 7px silver; text-shadow: 0px 2px 2px rgba(0,0,0,0.5); }
 <button onclick='test()'>Execute</button>

about 4 years ago · Juan Pablo Isaza Report

0

No tengo mucha experiencia con JS, pero creo que es porque la primera es en realidad una función que se puede reutilizar varias veces, mientras que la segunda es la función lambda con el propósito de devolver y almacenar un valor (pero no volver a calcular) en la func2 var.

Corrígeme si me equivoco.

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!