Bienvenido de nuevo en el video anterior, aprendemos que cuando la palabra clave this no está dentro de un
objeto declarado, su valor es el objeto global.
Vamos a demostrar rápidamente lo que quiero decir con objeto declarado en caso de que el video anterior todavía
te deje un poco confundido.
Recuerde que el material aquí es bastante desafiante.
Así que intente ver estos videos un par de veces y escriba los ejemplos del código para reforzar su conocimiento.
Voy a hacer un objeto vacío llamado datos.
Lo que acabo de hacer es declarado objeto, el objeto de datos no existía hasta que lo declare.
Ahora voy a adjuntar una propiedad en este objeto llamado instructor y establecer el valor igual a LTE.
Ahora nuestro objeto de datos que declaramos tiene una clave con el valor de elhi dentro de él.
Esto es lo que queremos decir cuando decimos dentro de un objeto declarado.
Si eso todavía te confunde, está bien.
Tendrá aún más sentido cuando examinemos la segunda regla y veamos la palabra clave this dentro de un objeto.
Ahora terminemos con la primera regla.
Como puede ver aquí cuando ponemos la palabra clave dentro de una función, su valor sigue siendo el
objeto global.
Recuerde que dijimos que la regla global se aplica a menos que la palabra clave esté dentro de un objeto declarado, pero
está dentro de una función en este momento.
Entonces, cuando llamamos a la función ¿qué es esto? El valor devuelto es el objeto ventana.
Ahora veamos un ejemplo final.
Qué sucede si adjuntamos propiedades a la palabra clave this cuando su valor es el objeto global.
Y recuerda que cuando digo Objeto global me refiero al objeto ventana en diferentes entornos de JavaScript.
Este valor cambiará
Pero como estamos en el navegador, el objeto global es el objeto ventana.
Ahora echemos un vistazo a nuestras variables en esta función en las variables en esta función.
Estamos adjuntando una propiedad a la palabra clave llamada Persona y configurándola igual a Ellie.
Dado que la palabra clave se refiere al objeto global, todo lo que le atribuimos se convierte en una variable global, lo
que significa que podemos usarlo fuera de la función.
Esto puede parecer algo que podríamos querer hacer, pero en realidad es una práctica muy mala.
Repasemos rápidamente cómo funcionan las variables y el alcance en JavaScript.
Voy a declarar una variable llamada perro y dije que el valor es igual a Rusty.
y dentro de declarar una variable llamada persona usando la palabra clave VAR y decir que es igual a código.
Luego voy a hacer una función llamada mansa persona
Como he declarado esta variable dentro de la función y no devuelvo su valor, no tengo
acceso a ella fuera de la función.
Sin embargo, desde que declare mi variable de perro en el ámbito global, tengo acceso a ella en todas partes.
Ahora podemos evitar el problema de no poder acceder a nuestra variable persona omitiendo la palabra
clave VAR dentro de nuestra función.
Sin embargo, esta es una muy mala práctica.
no tienen un valor y luego asignar esos valores en un momento posterior de una función.
En general, es una buena práctica declarar todas nuestras variables que queremos usar en múltiples funciones en la
parte superior de nuestro código, incluso si
Desafortunadamente, dado que la palabra clave es el objeto global, es bastante fácil declarar accidentalmente
variables globales dentro de una función.
Veamos un ejemplo.
Voy a hacer una función llamada error un conjunto interno una propiedad sobre la palabra clave llamada mala idea
para que sea igual a la cadena.
Whoops.
Ahora voy a llamar a esa función y podemos ver que tengo acceso a mi variable de mala idea.
Accidentalmente acabo de hacer una variable global.
Afortunadamente en sí 5 se agregó la versión anterior de JavaScript, algo llamado modo estricto para ayudarnos.
Los desarrolladores de Javascript leen mejor cuando el modo estricto está habilitado.
Lo cual puedes hacer agregando uso estricto entre comillas dobles.
El valor de la palabra clave this cuando está dentro de una función no está definido.
No es el objeto global.
Esto significa que si tratamos de adjuntar propiedades, obtenemos un error de tipo.
Dado que no podemos adjuntar propiedades a indefinido, es posible que haya visto este error un poco.
Esto nos impide crear accidentalmente variables globales y nos permite utilizar las mejores prácticas de JavaScript.
En este video, revisamos la primera regla para determinar la palabra clave this y vimos cómo
podemos crear accidentalmente variables globales dentro de las funciones.
También vimos cómo el modo estricto puede evitar que cometamos este error en el próximo video.
Discutiremos la segunda regla y cuál es el valor de la palabra clave cuando está
dentro de un objeto declarado.