Tengo una pregunta sobre cómo declarar una variable en un objeto. Suponiendo que global o window también es un objeto, ¿por qué no es posible declarar una variable usando let en un objeto que es hijo del objeto window? No entiendo eso. Gracias por la respuesta y perdon por el ingles pero espero que se entienda la pregunta.
esto no funciono
let a = 'global'; console.log(a); const outsideObj = { let b = 'outside var', logIt() { console.log(this); console.log(a); console.log(this.b) } }; outsideObj.logIt();
esto funcionó
console.log(this); let a = 'global'; console.log(a); const outsideObj = { b: 'outside var', logIt() { console.log(this); console.log(a); console.log(this.b) } }; outsideObj.logIt();
No entiendo la diferencia entre el objeto de Windows y el objeto normal, ¿por qué es posible en el padre y no en el hijo?
Un objeto tiene propiedades y puede ser creado por un objeto literal con definiciones de propiedad.
Un alcance tiene variables y puede crearse mediante una declaración de bloque con declaraciones de variables.
No mezcle estos dos conceptos, especialmente no sintácticamente. Que las declaraciones globales de var
y function
creen implícitamente propiedades en el objeto global es un caso especial, y también solo funciona con el objeto global proporcionado por el tiempo de ejecución; no hay un objeto literal para él.