1
00:00:00,810 --> 00:00:06,000
Bentornato nell'ultimo video esaminiamo la seconda regola per determinare il valore della parola chiave,

2
00:00:06,030 --> 00:00:12,060
questa la regola implicita che la regola implicita afferma che quando la parola chiave si trova

3
00:00:12,090 --> 00:00:16,980
all'interno di un oggetto dichiarato, il suo valore sarà sempre l'oggetto padre più vicino.

4
00:00:16,980 --> 00:00:21,780
Una cosa da notare queste regole che stiamo usando non sono una parte ufficiale della specifica

5
00:00:21,990 --> 00:00:23,710
JavaScript, quindi non le troverai lì.

6
00:00:23,730 --> 00:00:28,910
Queste regole sono solo un modo utile per tenere traccia di quale sia il valore della parola chiave.

7
00:00:29,310 --> 00:00:34,740
Alla fine dell'ultimo video abbiamo visto un esempio di quando il contesto della parola chiave è cambiato in modo imprevisto

8
00:00:35,340 --> 00:00:36,850
nel nostro metodo Say hello.

9
00:00:36,940 --> 00:00:44,760
La proprietà del primo nome divenne indefinita perché la parola chiave ora si riferiva all'oggetto cane.

10
00:00:44,760 --> 00:00:50,280
Quindi, cosa vogliamo impostare in modo esplicito il valore della parola chiave, così da poterlo

11
00:00:50,280 --> 00:00:53,210
forzare ad essere l'oggetto persona invece dell'oggetto cane.

12
00:00:53,220 --> 00:00:56,250
È qui che entra in gioco la terza regola.

13
00:00:56,250 --> 00:01:01,800
Ogni volta che vedi la chiamata applicare o associare metodi, puoi facilmente determinare qual è

14
00:01:01,830 --> 00:01:08,250
il valore della parola chiave, perché puoi impostarlo come il primo parametro da chiamare applicare e associare.

15
00:01:08,700 --> 00:01:11,150
Prima confrontiamo e contrapponiamo questi tre metodi.

16
00:01:11,220 --> 00:01:17,610
essere utilizzati solo da funzioni non di qualsiasi altro tipo di dati come stringhe booleani o oggetti.

17
00:01:17,610 --> 00:01:24,740
Una cosa da ricordare è che possono essere utilizzati solo su funzioni call apply e bind o metodi che possono

18
00:01:24,750 --> 00:01:29,640
Il primo metodo di cui parleremo è chiamare il primo argomento per il metodo

19
00:01:29,640 --> 00:01:32,670
call, indipendentemente dal valore della parola chiave this.

20
00:01:32,670 --> 00:01:37,370
Questo è comunemente chiamato questo ARG e può essere impostato su qualsiasi cosa tu voglia.

21
00:01:37,530 --> 00:01:43,350
Gli argomenti dopo questo ARG sono tutti i parametri che vuoi passare alla funzione che stai

22
00:01:43,350 --> 00:01:49,020
cambiando il contesto della parola chiave all'interno di questo suono, ma io avrò più senso

23
00:01:49,020 --> 00:01:50,550
quando vedremo un esempio.

24
00:01:50,550 --> 00:01:55,620
funzione può avere un numero infinito di argomenti, separiamo ciascuno di essi con una virgola quando si usa la chiamata.

25
00:01:55,680 --> 00:01:57,080
E dal momento che una

26
00:01:57,150 --> 00:02:03,230
Infine, quando il metodo call viene utilizzato su una funzione, la funzione viene immediatamente richiamata.

27
00:02:03,230 --> 00:02:04,600
Ora passiamo a una trama.

28
00:02:04,920 --> 00:02:11,940
L'applicazione è quasi identica alla chiamata, tranne applicare richiede solo due parametri al massimo il primo, proprio come la chiamata

29
00:02:11,940 --> 00:02:15,630
è ciò che vogliamo che il valore della parola chiave sia.

30
00:02:15,630 --> 00:02:17,700
Lo chiamiamo questo ARG.

31
00:02:17,880 --> 00:02:23,190
Il secondo è un array di argomenti che vogliamo passare alla funzione in cui stiamo

32
00:02:23,190 --> 00:02:25,600
cambiando il valore della parola chiave this.

33
00:02:25,680 --> 00:02:27,060
Ora esaminiamo il legame.

34
00:02:27,330 --> 00:02:32,490
Bind è quasi identico alla chiamata tranne che invocare la funzione immediatamente.

35
00:02:32,550 --> 00:02:35,070
Bind restituisce una definizione di funzione.

36
00:02:35,490 --> 00:02:38,410
Ricapitoliamo rapidamente cosa intendo per definizione della funzione.

37
00:02:38,430 --> 00:02:43,270
Ho intenzione di creare una funzione chiamata first function e restituirà la stringa ciao.

38
00:02:43,650 --> 00:02:47,570
Se non invoco la funzione ma esamino la variabile che ho creato.

39
00:02:47,760 --> 00:02:50,480
Mi viene restituita una definizione di funzione.

40
00:02:50,490 --> 00:02:55,900
funzioni con un valore diverso della parola chiave this e richiamarle in un secondo momento.

41
00:02:55,980 --> 00:02:59,710
Bind è una funzione estremamente potente in quanto possiamo vedere le

42
00:02:59,850 --> 00:03:05,040
Bind è molto utile quando si lavora con codice asincrono come il timeout impostato ed è il

43
00:03:05,100 --> 00:03:08,720
mattone di partenza per tecniche di programmazione più avanzate come il corriere.

44
00:03:08,790 --> 00:03:15,180
Ricapitoliamo rapidamente questi tre metodi call apply e bind vengono utilizzati per indicare esplicitamente il valore della

45
00:03:15,180 --> 00:03:15,780
parola chiave.

46
00:03:15,810 --> 00:03:21,000
Questo li usiamo quando vogliamo il pieno controllo su ciò a cui la parola chiave si riferirà.

47
00:03:21,300 --> 00:03:27,480
Quindi avrà la precedenza sulle prime due chiamate di regole e applica invocherà immediatamente la funzione su cui sono

48
00:03:27,600 --> 00:03:32,940
chiamate mentre vincola o restituisce una nuova definizione di funzione con il valore della parola chiave.

49
00:03:32,940 --> 00:03:36,640
Questo ha stabilito in modo esplicito di chiamare e legare.

50
00:03:36,660 --> 00:03:42,430
Tranne un numero infinito di parametri mentre applica solo prende in due nel prossimo video.

51
00:03:42,450 --> 00:03:48,150
Vedremo un esempio di chiamata e come possiamo usarlo per impostare esplicitamente il valore della parola chiave this.

52
00:03:48,320 --> 00:03:48,750
Guarda quello
