Bienvenue dans la vidéo précédente, nous apprenons que lorsque le mot clé n'est pas à l'intérieur d'un objet déclaré sa valeur est l'objet global.
Démontrons rapidement ce que je veux dire par objet déclaré dans le cas où la vidéo précédente vous laissait encore un peu confus.
Rappelez-vous le matériel ici est très difficile.
Alors essayez de regarder ces vidéos quelques fois et de taper les exemples de code pour renforcer vos connaissances.
Je vais faire un objet vide appelé données.
Ce que je viens de faire est déclaré un objet l'objet de données n'existait pas jusqu'à ce que je l'ai déclaré.
Maintenant, je vais attacher une propriété sur cet objet appelé instructeur et définir la valeur égale à LTE.
Maintenant, notre objet de données que nous avons déclaré a une clé avec la valeur d'elhi à l'intérieur de celui-ci.
C'est ce que nous voulons dire quand nous disons à l'intérieur d'un objet déclaré.
Si cela vous embrouille encore, c'est bien.
Il sera encore plus logique d'examiner la deuxième règle et de voir le mot-clé this à l'intérieur d'un objet.
Maintenant terminons avec la première règle.
Comme vous pouvez le voir ici quand nous mettons le mot-clé ceci à l'intérieur d'une fonction sa valeur est toujours l'objet global.
N'oubliez pas que nous avons dit que la règle globale s'applique à moins que le mot-clé soit à l'intérieur d'un objet déclaré mais à l'intérieur d'une fonction en ce moment.
Donc, quand on appelle la fonction what is this, la valeur retournée est l'objet window.
Maintenant, regardons un dernier exemple.
Que se passe-t-il si nous attachons des propriétés au mot-clé this quand sa valeur est l'objet global.
Et rappelez-vous quand je dis Global Object je veux dire l'objet fenêtre dans différents environnements javascript.
Cette valeur va changer.
Mais comme nous sommes dans le navigateur, l'objet global est l'objet fenêtre.
Examinons maintenant nos variables dans cette fonction dans les variables de cette fonction.
Nous attachons une propriété sur le mot-clé cette personne appelée et le placer égal à Ellie.
Puisque le mot-clé se réfère à l'objet global tout ce que nous attachons à lui, il devient une variable globale qui signifie que nous pouvons l'utiliser en dehors de la fonction.
Cela peut sembler quelque chose que nous pourrions vouloir faire mais c'est en fait une très mauvaise pratique.
Revenons rapidement comment les variables et la portée fonctionnent en javascript.
Je vais déclarer une variable appelée chien et dit la valeur égale à Rusty.
Je vais ensuite faire une fonction appelée personne douce un intérieur déclarer une variable appelée personne en utilisant le mot-clé VAR et l'a dit égal au code.
Depuis que j'ai déclaré cette variable à l'intérieur de la fonction et je ne retourne pas sa valeur je n'ai pas accès à elle en dehors de la fonction.
Cependant depuis que j'ai déclaré mon chien variable dans la portée mondiale, j'ai accès à elle partout.
Maintenant, nous pouvons contourner le problème de ne pas être en mesure d'accéder à notre variable personne en omettant le mot-clé VAR à l'intérieur de notre fonction.
Cependant, c'est une très mauvaise pratique.
Il est généralement préférable de déclarer toutes nos variables que nous voulons utiliser dans plusieurs fonctions en haut de notre code, même si elles n'ont pas de valeur, puis attribuer ces valeurs ultérieurement dans une fonction.
Malheureusement depuis le mot-clé, il s'agit de l'objet global, il est assez facile de déclarer accidentellement des variables globales à l'intérieur d'une fonction.
Voyons un exemple.
Je vais faire une fonction appelée erreur à l'intérieur de définir une propriété sur le mot-clé ce appelé mauvaise idée d'être égal à la chaîne.
Oups.
Maintenant, je vais appeler cette fonction et nous pouvons voir que j'ai accès à ma variable mauvaise idée.
J'ai accidentellement fait une variable globale.
Heureusement en oui 5 la version précédente de javascript quelque chose appelé strict mode a été ajouté pour nous aider.
Les développeurs Javascript lire mieux face lorsque le mode strict est activé.
Ce que vous pouvez faire en ajoutant l'utilisation stricte entre guillemets.
La valeur du mot-clé this lorsque l'intérieur d'une fonction est indéfinie.
Ce n'est pas l'objet global.
Cela signifie que si nous essayons d'y attacher des propriétés, nous obtenons une erreur de type.
Puisque nous ne pouvons pas attacher des propriétés à undefined vous pourriez avoir vu cette erreur un peu.
Cela nous empêche de créer accidentellement des variables globales et nous permet d'utiliser les meilleures pratiques javascript.
Dans cette vidéo, nous avons examiné la première règle pour déterminer le mot clé this et avons vu comment nous pouvons accidentellement créer des variables globales à l'intérieur des fonctions.
Nous avons également vu comment le mode strict peut nous empêcher de faire cette erreur dans la prochaine vidéo.