¿Por qué this === window? ¿Y cómo hago referencia al atributo de una clase en JS?

Carlos Santaniello

Carlos Santaniello

Pregunta
studenthace 6 años

¿Por qué this === window? ¿Y cómo hago referencia al atributo de una clase en JS?

1 respuestas
para escribir tu comentario
    Fernando Salazar

    Fernando Salazar

    studenthace 6 años

    Eso depende de donde hagas la comparacion.

    Las palabras reservadas this y window hacen referencia a dos cosas en particular e imagino que en donde haces la comparacion estas estan apuntando al mismo objeto.

    Window hace referencia al contexto global de javascript en el navegador, en este se alamacenan muchas cosas con el API de localstorage, navigator, history, console, etc...

    this hace referencia a la funcion mas cercana que provea un contexto si haces en root de archivo javascript

    this === windows
    probablemente te de
    true
    pero si en vez de eso haces esto:

    function isWindowEqualToThis() { return this === window; } console.log(isWindowEqualToThis());

    Esto te va a dar

    false
    de debido a que el contexto que this toma en esa ocacion es el da
    function
    que acabas de declarar, en otras palabras this vale lo que el contexto de
    isWindowEqualToThis
    valga, y este no es igual al del window.

    Lo ultimo que preguntaste no lo entendi muy bien, subongo que para crear un referencia a un propiedad de una clase se debe cumplir un condicion y es que esta propiedad debe ser alguna clase de object, siendo este el caso podrias hacer una operacion de asignacion y la variable en cuestion que declares deberia tener la misma referencia que la instancia de tu clase hacia ese atributo.

    E.G:

    const consoleReference = window.console;

    Espero que te haya servido de algo mi intento de explicacion.

Fundamentos de JavaScript 2018

Fundamentos de JavaScript 2018

JavaScript es un lenguaje de programación que se trabaja desde el navegador. Construye programas, conoce el entorno, los condicionales y las estructuras repetitivas. Aprende cuáles son y cómo se declaran las variables y las funciones de JS.

Fundamentos de JavaScript 2018
Fundamentos de JavaScript 2018

Fundamentos de JavaScript 2018

JavaScript es un lenguaje de programación que se trabaja desde el navegador. Construye programas, conoce el entorno, los condicionales y las estructuras repetitivas. Aprende cuáles son y cómo se declaran las variables y las funciones de JS.