1
00:00:01,380 --> 00:00:11,580
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.

2
00:00:11,820 --> 00:00:18,180
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.

3
00:00:18,180 --> 00:00:21,250
Rappelez-vous le matériel ici est très difficile.

4
00:00:21,420 --> 00:00:28,410
Alors essayez de regarder ces vidéos quelques fois et de taper les exemples de code pour renforcer vos connaissances.

5
00:00:28,470 --> 00:00:31,310
Je vais faire un objet vide appelé données.

6
00:00:31,440 --> 00:00:38,650
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é.

7
00:00:38,670 --> 00:00:46,610
Maintenant, je vais attacher une propriété sur cet objet appelé instructeur et définir la valeur égale à LTE.

8
00:00:46,620 --> 00:00:55,150
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.

9
00:00:55,230 --> 00:00:59,200
C'est ce que nous voulons dire quand nous disons à l'intérieur d'un objet déclaré.

10
00:00:59,520 --> 00:01:01,750
Si cela vous embrouille encore, c'est bien.

11
00:01:01,800 --> 00:01:08,820
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.

12
00:01:08,820 --> 00:01:10,780
Maintenant terminons avec la première règle.

13
00:01:11,010 --> 00:01:18,290
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.

14
00:01:18,600 --> 00:01:28,590
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.

15
00:01:28,950 --> 00:01:36,270
Donc, quand on appelle la fonction what is this, la valeur retournée est l'objet window.

16
00:01:36,270 --> 00:01:38,340
Maintenant, regardons un dernier exemple.

17
00:01:38,640 --> 00:01:46,060
Que se passe-t-il si nous attachons des propriétés au mot-clé this quand sa valeur est l'objet global.

18
00:01:46,110 --> 00:01:52,640
Et rappelez-vous quand je dis Global Object je veux dire l'objet fenêtre dans différents environnements javascript.

19
00:01:52,680 --> 00:01:54,410
Cette valeur va changer.

20
00:01:54,540 --> 00:01:59,730
Mais comme nous sommes dans le navigateur, l'objet global est l'objet fenêtre.

21
00:01:59,730 --> 00:02:05,340
Examinons maintenant nos variables dans cette fonction dans les variables de cette fonction.

22
00:02:05,340 --> 00:02:12,100
Nous attachons une propriété sur le mot-clé cette personne appelée et le placer égal à Ellie.

23
00:02:12,420 --> 00:02:23,340
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.

24
00:02:23,340 --> 00:02:28,930
Cela peut sembler quelque chose que nous pourrions vouloir faire mais c'est en fait une très mauvaise pratique.

25
00:02:29,670 --> 00:02:34,680
Revenons rapidement comment les variables et la portée fonctionnent en javascript.

26
00:02:34,680 --> 00:02:39,780
Je vais déclarer une variable appelée chien et dit la valeur égale à Rusty.

27
00:02:39,810 --> 00:02:50,610
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.

28
00:02:50,790 --> 00:03:00,430
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.

29
00:03:00,450 --> 00:03:07,410
Cependant depuis que j'ai déclaré mon chien variable dans la portée mondiale, j'ai accès à elle partout.

30
00:03:08,160 --> 00:03:16,020
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.

31
00:03:16,020 --> 00:03:18,900
Cependant, c'est une très mauvaise pratique.

32
00:03:18,960 --> 00:03:34,370
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.

33
00:03:34,380 --> 00:03:44,400
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.

34
00:03:44,400 --> 00:03:47,340
Voyons un exemple.

35
00:03:47,340 --> 00:03:57,060
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.

36
00:03:57,100 --> 00:03:58,480
Oups.

37
00:03:58,770 --> 00:04:05,400
Maintenant, je vais appeler cette fonction et nous pouvons voir que j'ai accès à ma variable mauvaise idée.

38
00:04:05,400 --> 00:04:09,390
J'ai accidentellement fait une variable globale.

39
00:04:09,390 --> 00:04:16,440
Heureusement en oui 5 la version précédente de javascript quelque chose appelé strict mode a été ajouté pour nous aider.

40
00:04:16,440 --> 00:04:21,870
Les développeurs Javascript lire mieux face lorsque le mode strict est activé.

41
00:04:21,960 --> 00:04:26,460
Ce que vous pouvez faire en ajoutant l'utilisation stricte entre guillemets.

42
00:04:26,670 --> 00:04:31,760
La valeur du mot-clé this lorsque l'intérieur d'une fonction est indéfinie.

43
00:04:31,800 --> 00:04:34,530
Ce n'est pas l'objet global.

44
00:04:34,530 --> 00:04:38,870
Cela signifie que si nous essayons d'y attacher des propriétés, nous obtenons une erreur de type.

45
00:04:38,940 --> 00:04:44,270
Puisque nous ne pouvons pas attacher des propriétés à undefined vous pourriez avoir vu cette erreur un peu.

46
00:04:44,280 --> 00:04:51,490
Cela nous empêche de créer accidentellement des variables globales et nous permet d'utiliser les meilleures pratiques javascript.

47
00:04:52,140 --> 00:05:00,860
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.

48
00:05:00,870 --> 00:05:06,410
Nous avons également vu comment le mode strict peut nous empêcher de faire cette erreur dans la prochaine vidéo.
