1
00:00:00,480 --> 00:00:06,030
No último vídeo, vimos como criar objetos de funções do construtor usando a nova palavra-chave

2
00:00:06,030 --> 00:00:06,720
neste vídeo.

3
00:00:06,720 --> 00:00:11,690
Nós vamos aprender a usar várias funções do construtor sem duplicar o código.

4
00:00:11,700 --> 00:00:13,790
O material aqui será um desafio.

5
00:00:13,860 --> 00:00:18,810
Portanto, certifique-se de ter assistido as séries de vídeos na palavra-chave antes de prosseguir.

6
00:00:18,810 --> 00:00:24,030
Agora vamos imaginar que temos duas funções de construtor uma para um carro e outra para motocicleta.

7
00:00:24,300 --> 00:00:29,520
Aqui está o código para ambos e o que vemos aqui não é nada especial, apenas algumas funções

8
00:00:29,550 --> 00:00:31,660
que constroem objetos usando a nova palavra-chave.

9
00:00:31,890 --> 00:00:34,000
Mas o que não é bom neste código.

10
00:00:34,190 --> 00:00:38,010
Veja quanto código estamos duplicando na função de motocicleta.

11
00:00:38,400 --> 00:00:43,950
Seria realmente bom se pudéssemos de alguma forma emprestar o código da função do cartão e colocá-lo

12
00:00:43,950 --> 00:00:45,360
na função da motocicleta.

13
00:00:45,780 --> 00:00:53,040
Então você pode estar pensando por que não chamamos a função do carro dentro da função da motocicleta.

14
00:00:53,040 --> 00:00:59,760
O problema aqui é quando chamamos a função do carro a palavra-chave que se refere ao objeto que será criado

15
00:00:59,760 --> 00:01:01,620
a partir da função do carro.

16
00:01:01,890 --> 00:01:03,770
Mas essa é a coisa errada.

17
00:01:03,780 --> 00:01:10,190
O que precisamos fazer aqui é mudar o valor da palavra-chave para ser o objeto criado a

18
00:01:10,190 --> 00:01:12,660
partir da função do ciclo do motor.

19
00:01:12,780 --> 00:01:15,120
Então, como podemos alterar o valor da palavra-chave.

20
00:01:15,120 --> 00:01:21,600
Isso retornamos à nossa terceira regra de descobrir o valor da palavra-chave com ligação explícita.

21
00:01:22,350 --> 00:01:28,890
Isso significa que queremos usar a chamada, aplicar ou ligar, podemos descartar usando bind porque não queremos retornar

22
00:01:28,950 --> 00:01:32,450
uma definição de função, então vamos escolher chamar ou aplicar.

23
00:01:32,460 --> 00:01:38,220
Melhor ainda, vamos olhar para ambos e ver qual deles pode ser uma escolha melhor como aviso.

24
00:01:38,220 --> 00:01:41,260
O código que eu vou mostrar pode ser bastante confuso no início.

25
00:01:41,550 --> 00:01:47,730
Então, sinta-se livre para interromper o vídeo, tente lê-lo primeiro e coloque-o no console cromado para ver exatamente

26
00:01:47,790 --> 00:01:49,120
o que está acontecendo.

27
00:01:49,140 --> 00:01:54,570
Portanto, a função do carro parece ser a mesma, mas as coisas divertidas estão acontecendo na função da motocicleta em

28
00:01:54,570 --> 00:01:57,000
vez de duplicar o código da função do carro.

29
00:01:57,120 --> 00:02:03,870
Nós invocamos a função do carro, mas alteramos o contexto da palavra-chave para ser a palavra-chave.

30
00:02:03,930 --> 00:02:05,090
O que isso significa.

31
00:02:05,490 --> 00:02:11,040
Bem, pense em nosso problema antes, quando não usamos chamada, perdemos o contexto correto da

32
00:02:11,040 --> 00:02:11,420
palavra-chave.

33
00:02:11,450 --> 00:02:14,070
Este é o valor certo da palavra-chave.

34
00:02:14,070 --> 00:02:19,330
Este deve ser qualquer objeto que esteja sendo criado a partir da função da motocicleta.

35
00:02:19,380 --> 00:02:27,000
Quando a nova palavra-chave é usada, a maneira como acessamos esse objeto é usando a palavra-chave dentro

36
00:02:27,000 --> 00:02:28,560
da função de motocicleta.

37
00:02:28,620 --> 00:02:29,710
Isso é bastante confuso.

38
00:02:29,760 --> 00:02:31,540
Então vamos tentar entender de novo.

39
00:02:31,890 --> 00:02:34,940
Queremos remover a duplicação da nossa função de motocicleta.

40
00:02:35,220 --> 00:02:41,100
fazendo é emprestar o código da função do carro chamando-o dentro da função do ciclo do motor.

41
00:02:41,100 --> 00:02:42,420
Então, o que estamos

42
00:02:42,420 --> 00:02:48,780
O problema aqui é que a palavra-chave dentro da função de carro não é a palavra-chave

43
00:02:48,780 --> 00:02:50,170
que queremos usar.

44
00:02:50,310 --> 00:02:56,010
Então, precisamos alterar o valor da palavra-chave para fazer isso, usamos o chamador.

45
00:02:56,310 --> 00:03:02,190
E como o primeiro parâmetro para chamar ou aplicar, especificamos o que gostaríamos que o valor da

46
00:03:02,190 --> 00:03:04,470
palavra-chave fosse o valor que queremos.

47
00:03:04,470 --> 00:03:10,020
A palavra-chave a ser é o objeto que será criado a partir da função de motocicleta.

48
00:03:10,020 --> 00:03:16,260
A maneira como acessamos esse objeto é usando a palavra-chave dentro da função de motocicleta.

49
00:03:17,160 --> 00:03:24,120
É por isso que o primeiro argumento para chamar ou aplicar é a palavra-chave que se refere ao objeto criado a

50
00:03:24,180 --> 00:03:25,980
partir da função da motocicleta.

51
00:03:26,040 --> 00:03:30,740
Quando a nova palavra-chave é usada se você ainda estiver tropeçando nisso, não se preocupe.

52
00:03:30,870 --> 00:03:33,630
Estamos fazendo um javascript bastante avançado aqui.

53
00:03:33,630 --> 00:03:36,300
Faça uma pausa no vídeo e tente estes exemplos de código.

54
00:03:36,300 --> 00:03:41,150
E, como sempre, pergunte-nos quaisquer perguntas para que possamos usar chamadas ou aplicar.

55
00:03:41,400 --> 00:03:47,460
uma matriz de argumentos que são passados ​​para a função para que possamos colocar o modelo de

56
00:03:47,460 --> 00:03:53,820
marca e o ano em uma matriz ou podemos fazer uso de outra palavra-chave especial os argumentos palavra-chave.

57
00:03:53,820 --> 00:04:00,440
Mas lembre-se que a única diferença é o segundo parâmetro com aplicar o segundo parâmetro a aplicar é

58
00:04:00,540 --> 00:04:06,630
Você pode ter visto argumentos antes, mas se argumentos não é uma lista de todos os argumentos que são

59
00:04:06,720 --> 00:04:09,610
passados ​​para uma função, não é tecnicamente uma matriz.

60
00:04:09,780 --> 00:04:15,300
Mas para nossos propósitos, você pode pensar nisso como um por agora, aqui é um exemplo rápido usando a matriz de argumentos.

61
00:04:16,170 --> 00:04:21,480
Eu vou fazer uma função chamada argumentos de lista que retornará os argumentos passados ​​para a função.

62
00:04:22,170 --> 00:04:26,120
Agora vamos chamar os argumentos da lista com um dois e três.

63
00:04:26,280 --> 00:04:30,480
Veremos que recuperamos uma série de argumentos passados ​​para essa função.

64
00:04:30,570 --> 00:04:35,210
Agora, em nosso exemplo, podemos usar a matriz de argumentos em vez de listar.

65
00:04:35,250 --> 00:04:37,220
Faça modelo e ano.

66
00:04:37,340 --> 00:04:38,870
Coloca um refator muito legal.

67
00:04:39,090 --> 00:04:45,300
Nós passamos de copiar e colar três linhas de nossa função de carro para emprestar a função do

68
00:04:45,300 --> 00:04:51,180
carro mudando o contexto da palavra-chave e passando em qualquer argumento para essa função no próximo vídeo.

69
00:04:51,210 --> 00:04:54,980
Vamos recapitular o que aprendemos sobre as funções do construtor e a nova palavra-chave.

70
00:04:55,060 --> 00:04:55,700
Veja ou
