1
00:00:00,480 --> 00:00:06,030
Nell'ultimo video abbiamo visto come creare oggetti dalle funzioni del costruttore usando la nuova parola chiave in

2
00:00:06,030 --> 00:00:06,720
questo video.

3
00:00:06,720 --> 00:00:11,690
Impareremo come utilizzare più funzioni di costruzione senza duplicare il codice.

4
00:00:11,700 --> 00:00:13,790
Il materiale qui sarà impegnativo.

5
00:00:13,860 --> 00:00:18,810
Quindi assicurati di aver guardato la serie di video sulla parola chiave prima di andare avanti.

6
00:00:18,810 --> 00:00:24,030
Ora immaginiamo di avere due funzioni di costruttore una per una macchina e una per una moto.

7
00:00:24,300 --> 00:00:29,520
Ecco il codice per entrambi e quello che vediamo qui non è niente di speciale solo alcune funzioni che

8
00:00:29,550 --> 00:00:31,660
costruiscono oggetti usando la nuova parola chiave.

9
00:00:31,890 --> 00:00:34,000
Ma cosa non va bene di questo codice.

10
00:00:34,190 --> 00:00:38,010
Guarda quanti codici stiamo duplicando nella funzione moto.

11
00:00:38,400 --> 00:00:43,950
Sarebbe davvero bello se potessimo in qualche modo prendere in prestito il codice dalla funzione della carta e

12
00:00:43,950 --> 00:00:45,360
metterlo nella funzione della moto.

13
00:00:45,780 --> 00:00:53,040
Quindi potresti pensare perché non chiamiamo semplicemente la funzione auto all'interno della funzione moto.

14
00:00:53,040 --> 00:00:59,760
Il problema qui è quando chiamiamo la funzione auto la parola chiave che si riferisce all'oggetto che

15
00:00:59,760 --> 00:01:01,620
verrà creato dalla funzione dell'automobile.

16
00:01:01,890 --> 00:01:03,770
Ma questa è la cosa sbagliata.

17
00:01:03,780 --> 00:01:10,190
Quello che dobbiamo fare qui è cambiare il valore della parola chiave questo per essere l'oggetto

18
00:01:10,190 --> 00:01:12,660
creato dalla funzione del ciclo motore.

19
00:01:12,780 --> 00:01:15,120
Quindi, come possiamo cambiare il valore della parola chiave.

20
00:01:15,120 --> 00:01:21,600
Ritorniamo alla nostra terza regola per capire il valore della parola chiave con vincoli espliciti.

21
00:01:22,350 --> 00:01:28,890
Questo significa che vogliamo usare call apply o bind che possiamo eliminare usando bind perché non vogliamo restituire

22
00:01:28,950 --> 00:01:32,450
una definizione di funzione, quindi scegliamo call o apply.

23
00:01:32,460 --> 00:01:38,220
Meglio ancora diamo un'occhiata a entrambi e vediamo quale potrebbe essere una scelta migliore come avvertimento.

24
00:01:38,220 --> 00:01:41,260
Il codice che sto per mostrarvi può essere piuttosto confuso all'inizio.

25
00:01:41,550 --> 00:01:47,730
Quindi sentiti libero di mettere in pausa il video, prova a leggerlo prima e mettilo nella console cromata per vedere

26
00:01:47,790 --> 00:01:49,120
esattamente cosa sta succedendo.

27
00:01:49,140 --> 00:01:54,570
Quindi la funzione dell'auto sembra la stessa, ma nella funzione motociclistica sta accadendo qualcosa di divertente invece

28
00:01:54,570 --> 00:01:57,000
di duplicare il codice dalla funzione dell'auto.

29
00:01:57,120 --> 00:02:03,870
Invochiamo la funzione dell'automobile, ma cambiamo il contesto della parola chiave per essere la parola chiave.

30
00:02:03,930 --> 00:02:05,090
Cosa significa.

31
00:02:05,490 --> 00:02:11,040
Bene, ripensaci al nostro problema prima, quando non usavamo la chiamata, abbiamo perso il contesto corretto della parola

32
00:02:11,040 --> 00:02:11,420
chiave.

33
00:02:11,450 --> 00:02:14,070
Questo è il giusto valore della parola chiave.

34
00:02:14,070 --> 00:02:19,330
Questo dovrebbe essere qualunque oggetto venga creato dalla funzione motocicletta.

35
00:02:19,380 --> 00:02:27,000
Quando viene utilizzata la nuova parola chiave, il modo in cui accediamo a quell'oggetto è utilizzando la parola chiave

36
00:02:27,000 --> 00:02:28,560
all'interno della funzione motocicletta.

37
00:02:28,620 --> 00:02:29,710
Questo è abbastanza confuso.

38
00:02:29,760 --> 00:02:31,540
Quindi proviamo a capirlo di nuovo.

39
00:02:31,890 --> 00:02:34,940
Vogliamo rimuovere la duplicazione dalla nostra funzione motociclistica.

40
00:02:35,220 --> 00:02:41,100
facendo è prendere in prestito il codice dalla funzione dell'automobile chiamandolo all'interno della funzione del ciclo motore.

41
00:02:41,100 --> 00:02:42,420
Quindi quello che stiamo

42
00:02:42,420 --> 00:02:48,780
Il problema qui è che la parola chiave all'interno della funzione auto non è la parola

43
00:02:48,780 --> 00:02:50,170
chiave che vogliamo usare.

44
00:02:50,310 --> 00:02:56,010
Quindi abbiamo bisogno di cambiare il valore della parola chiave per fare ciò che utilizziamo chiamante si applicano.

45
00:02:56,310 --> 00:03:02,190
E come primo parametro da chiamare o applicare, specifichiamo ciò che vorremmo che il valore della parola

46
00:03:02,190 --> 00:03:04,470
chiave fosse il valore che vogliamo.

47
00:03:04,470 --> 00:03:10,020
La parola chiave che deve essere è l'oggetto che verrà creato dalla funzione motocicletta.

48
00:03:10,020 --> 00:03:16,260
Il modo in cui otteniamo l'accesso a quell'oggetto è usando la parola chiave all'interno della funzione motocicletta.

49
00:03:17,160 --> 00:03:24,120
Ecco perché il primo argomento da chiamare o applicare è la parola chiave questo che si riferisce

50
00:03:24,180 --> 00:03:25,980
all'oggetto creato dalla funzione motocicletta.

51
00:03:26,040 --> 00:03:30,740
Quando viene utilizzata la nuova parola chiave se sei ancora inciampato su questo non preoccuparti.

52
00:03:30,870 --> 00:03:33,630
Stiamo facendo qualche javascript abbastanza avanzato qui.

53
00:03:33,630 --> 00:03:36,300
Metti in pausa il video e prova questi esempi di codice.

54
00:03:36,300 --> 00:03:41,150
E come sempre ci chiedono domande in modo che possiamo usare call o apply.

55
00:03:41,400 --> 00:03:47,460
è un array di argomenti che vengono passati alla funzione in modo che possiamo posizionare make

56
00:03:47,460 --> 00:03:53,820
model e year in un array o possiamo usare un'altra parola chiave speciale gli argomenti parola chiave.

57
00:03:53,820 --> 00:04:00,440
Ma ricorda che l'unica differenza è che il secondo parametro che applica il secondo parametro da applicare

58
00:04:00,540 --> 00:04:06,630
Potresti aver visto argomenti prima, ma se non gli argomenti è una lista di tutti gli argomenti che vengono

59
00:04:06,720 --> 00:04:09,610
passati ad una funzione non è tecnicamente una matrice.

60
00:04:09,780 --> 00:04:15,300
Ma per i nostri scopi puoi pensarlo come uno per ora ecco un rapido esempio usando la matrice degli argomenti.

61
00:04:16,170 --> 00:04:21,480
Ho intenzione di creare una funzione chiamata argomenti lista che restituirà gli argomenti passati alla funzione.

62
00:04:22,170 --> 00:04:26,120
Ora chiamiamo argomenti lista con uno due e tre.

63
00:04:26,280 --> 00:04:30,480
Vedremo di recuperare un array di argomenti passati a quella funzione.

64
00:04:30,570 --> 00:04:35,210
Ora nel nostro esempio possiamo usare la matrice di argomenti invece di elencare.

65
00:04:35,250 --> 00:04:37,220
Crea modello e anno.

66
00:04:37,340 --> 00:04:38,870
Mette un refattore piuttosto carino.

67
00:04:39,090 --> 00:04:45,300
Siamo passati dal copiare e incollare tre linee della nostra funzione auto a prendere in prestito la funzione

68
00:04:45,300 --> 00:04:51,180
dell'automobile cambiando il contesto della parola chiave e passando tutti gli argomenti a quella funzione nel prossimo video.

69
00:04:51,210 --> 00:04:54,980
Ricapitoliamo ciò che abbiamo imparato sulle funzioni del costruttore e la nuova parola chiave.

70
00:04:55,060 --> 00:04:55,700
Vedi o
