1
00:00:00,810 --> 00:00:06,000
Bem-vindo novamente no último vídeo, examinamos a segunda regra para determinar o valor

2
00:00:06,030 --> 00:00:12,060
da palavra-chave. Esta regra implícita, a regra implícita, afirma que, quando a palavra-chave está dentro

3
00:00:12,090 --> 00:00:16,980
de um objeto declarado, seu valor sempre será o objeto principal mais próximo.

4
00:00:16,980 --> 00:00:21,780
Uma coisa para observar essas regras que estamos usando não é uma parte oficial da especificação de JavaScript

5
00:00:21,990 --> 00:00:23,710
para que você não as encontre lá.

6
00:00:23,730 --> 00:00:28,910
Essas regras são apenas uma maneira útil de acompanhar o que é o valor da palavra-chave.

7
00:00:29,310 --> 00:00:34,740
No final do último vídeo, vimos um exemplo de quando o contexto da palavra-chave isso mudou inesperadamente

8
00:00:35,340 --> 00:00:36,850
no nosso método Say hello.

9
00:00:36,940 --> 00:00:44,760
A propriedade do primeiro nome tornou-se indefinida porque a palavra-chave agora se referia ao objeto do cão.

10
00:00:44,760 --> 00:00:50,280
Então, o que queremos definir explicitamente o valor da palavra-chave, para que possamos forçá-la a ser o

11
00:00:50,280 --> 00:00:53,210
objeto da pessoa em vez do objeto do cão.

12
00:00:53,220 --> 00:00:56,250
Este é o lugar onde a terceira regra entra.

13
00:00:56,250 --> 00:01:01,800
Sempre que você vê os métodos de aplicar ou ligar da chamada, você pode determinar com

14
00:01:01,830 --> 00:01:08,250
facilidade qual o valor da palavra-chave, porque você conseguirá configurá-la como o primeiro parâmetro a ser aplicado e vinculado.

15
00:01:08,700 --> 00:01:11,150
Antes de comparar e contrastar esses três métodos.

16
00:01:11,220 --> 00:01:17,610
só podem ser usados ​​por funções não por qualquer outro tipo de dados, como strings booleanos ou objetos.

17
00:01:17,610 --> 00:01:24,740
Uma coisa a lembrar é que eles só podem ser usados ​​em chamadas de funções, aplicar e vincular ou métodos que

18
00:01:24,750 --> 00:01:29,640
O primeiro método sobre o qual vamos falar é chamar o primeiro argumento para o método

19
00:01:29,640 --> 00:01:32,670
de chamada é o que quiser, o valor da palavra-chave.

20
00:01:32,670 --> 00:01:37,370
Isso geralmente é chamado de ARG e pode ser configurado para o que quiser.

21
00:01:37,530 --> 00:01:43,350
Os argumentos após este ARG são quaisquer parâmetros que você deseja passar para a função que

22
00:01:43,350 --> 00:01:49,020
você está mudando o contexto da palavra-chave, dentro dos sons confusos, mas eu farei mais sentido

23
00:01:49,020 --> 00:01:50,550
quando ver um exemplo.

24
00:01:50,550 --> 00:01:55,620
função pode ter um número infinito de argumentos, separamos cada um deles com uma vírgula ao usar a chamada.

25
00:01:55,680 --> 00:01:57,080
E uma vez que uma

26
00:01:57,150 --> 00:02:03,230
Finalmente, quando o método de chamada é usado em uma função, essa função é imediatamente invocada.

27
00:02:03,230 --> 00:02:04,600
Agora, vamos para uma trama.

28
00:02:04,920 --> 00:02:11,940
Aplicar é quase idêntico à chamada, exceto aplicar, só leva dois parâmetros no máximo, primeiro, como chamada, é

29
00:02:11,940 --> 00:02:15,630
o que queremos que o valor da palavra chave seja.

30
00:02:15,630 --> 00:02:17,700
Chamamos isso de ARG.

31
00:02:17,880 --> 00:02:23,190
A segunda é uma série de argumentos que queremos passar para a função em

32
00:02:23,190 --> 00:02:25,600
que estamos mudando o valor da palavra-chave.

33
00:02:25,680 --> 00:02:27,060
Agora vamos examinar bind.

34
00:02:27,330 --> 00:02:32,490
Bind é quase idêntico à chamada, exceto em vez de invocar a função imediatamente.

35
00:02:32,550 --> 00:02:35,070
Bind retorna uma definição de função.

36
00:02:35,490 --> 00:02:38,410
Vamos recapitular rapidamente o que quero dizer com a definição da função.

37
00:02:38,430 --> 00:02:43,270
Eu vou fazer uma função chamada primeira função e vai retornar a string, ola.

38
00:02:43,650 --> 00:02:47,570
Se eu não invocar a função, mas examino a variável que eu criei.

39
00:02:47,760 --> 00:02:50,480
Eu sou devolvido uma definição de função.

40
00:02:50,490 --> 00:02:55,900
funções com um valor diferente da palavra-chave e invocá-las em um momento posterior.

41
00:02:55,980 --> 00:02:59,710
Bind é uma função extremamente poderosa, pois podemos ver

42
00:02:59,850 --> 00:03:05,040
Bind é bastante valioso quando se trabalha com código assíncrono, como tempo de espera definido e é o

43
00:03:05,100 --> 00:03:08,720
bloco de construção para técnicas de programação mais avançadas, como o correio.

44
00:03:08,790 --> 00:03:15,180
Vamos rapidamente recapitularmos estes métodos de três métodos e aplicar-se para usar explicitamente o valor da

45
00:03:15,180 --> 00:03:15,780
palavra-chave.

46
00:03:15,810 --> 00:03:21,000
Isso os usamos quando queremos controle total sobre o que a palavra-chave se referirá.

47
00:03:21,300 --> 00:03:27,480
Por isso, terá precedência sobre as duas primeiras regras, e será aplicada invocará imediatamente a função em que

48
00:03:27,600 --> 00:03:32,940
são chamados, enquanto vincula ou retorna uma nova definição de função com o valor da palavra-chave.

49
00:03:32,940 --> 00:03:36,640
Isso define explicitamente finalmente ligar e vincular.

50
00:03:36,660 --> 00:03:42,430
Exceto um número infinito de parâmetros, enquanto a aplicação só leva em dois no próximo vídeo.

51
00:03:42,450 --> 00:03:48,150
Veremos um exemplo de chamada e como podemos usá-lo para definir explicitamente o valor da palavra-chave.

52
00:03:48,320 --> 00:03:48,750
Veja isso
