• Jobs
  • About Us
  • professionals
    • Home
    • Jobs
    • Courses and challenges
  • business
    • Home
    • Post vacancy
    • Our process
    • Pricing
    • Assessments
    • Payroll
    • Blog
    • Sales
    • Salary Calculator

0

237
Views
¿Por qué puede redefinir globalThis y global pero no ventana?

let globalThis = undefined no me da ningún error en los navegadores
let [global, globalThis] = [undefined, undefined] no me da ningún error en el nodo
Sin embargo let window = undefined arroja SyntaxError

over 3 years ago · Juan Pablo Isaza
1 answers
Answer question

0

window debe estar presente para que la página (marco) funcione. Dado window se declara en un contexto de ejecución global , no puede volver a declararla con let o const .

Aunque, es posible llamar al siguiente código: var window = undefined; o window = undefined; , pero no le hará nada al objeto window . Esto se debe a que el setter en el objeto de la window no está undefined y el descriptor configurable se establece en false , lo que impide los cambios y la eliminación de la propiedad de la window . Puedes ver eso si lo haces con el siguiente código:

 console.log(Object.getOwnPropertyDescriptor(this, 'window'))

Todavía puede declarar su propia variable de window dentro de cualquier otro contexto léxico, que no sea el global:

 const test = () => { const window = 123; console.log('in test fn:', window); } test() console.log('in global:', window)

Pero, ¿por qué puedo cambiar el globalThis entonces? Puede cambiarlo porque globalThis es la propiedad de la window . Y no parece tener un setter vacío y el descriptor configurable se establece en true , lo que permite cambios en esta propiedad. Todo eso significa que puedes hacer lo que quieras con globalThis property :)

 console.log(window.hasOwnProperty('globalThis')); console.log(Object.getOwnPropertyDescriptor(window, 'globalThis'));

over 3 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 Our process Sales
Legal
Terms and conditions Privacy policy
© 2025 PeakU Inc. All Rights Reserved.

Andres GPT

Recommend me some offers
I have an error