1
00:00:00,300 --> 00:00:06,060
Bem-vindo no vídeo anterior, vimos que, quando a nova palavra-chave é usada, uma propriedade é adicionada

2
00:00:06,150 --> 00:00:10,310
ao objeto criado a partir da função de construtor chamada donder produ.

3
00:00:10,560 --> 00:00:14,780
Esta propriedade liga a propriedade do protótipo na função do construtor.

4
00:00:15,330 --> 00:00:21,120
Mas qual o valor dessa propriedade protótipo com a propriedade protótipo é um objeto que pode

5
00:00:21,120 --> 00:00:23,440
ter métodos e propriedades colocados sobre ele.

6
00:00:23,520 --> 00:00:30,090
Esses métodos e propriedades são compartilhados e acessíveis por qualquer objeto criado a partir dessa função

7
00:00:30,090 --> 00:00:30,770
de construtor.

8
00:00:30,780 --> 00:00:37,710
exemplo em que a adição de uma propriedade no protótipo chamado é instrutor e definindo o valor como verdadeiro.

9
00:00:38,010 --> 00:00:40,470
Quando a nova palavra-chave é usada neste

10
00:00:40,470 --> 00:00:46,080
Agora, todos os nossos objetos que foram criados a partir deste construtor usando a nova palavra-chave têm

11
00:00:46,080 --> 00:00:47,910
acesso ao instr. propriedade.

12
00:00:48,450 --> 00:00:49,920
Mas como no mundo isso aconteceu.

13
00:00:50,130 --> 00:00:56,310
Adicionamos uma propriedade ao objeto protótipo da pessoa e, de repente, dois objetos aparentemente não

14
00:00:56,340 --> 00:00:58,610
relacionados têm acesso a ele.

15
00:00:58,620 --> 00:01:01,080
A resposta está em protocolo.

16
00:01:01,380 --> 00:01:08,510
Como esses objetos possuem um link para o protótipo de ponto pessoal, eles não podem acessar nada dentro dele.

17
00:01:08,520 --> 00:01:15,260
Na verdade, esta é realmente a maneira exata em que o javascript encontra métodos e propriedades em objetos.

18
00:01:15,450 --> 00:01:19,130
E o que acabamos de descrever é algo chamado de cadeia de protótipo.

19
00:01:19,350 --> 00:01:21,410
Vamos falar um pouco mais sobre isso.

20
00:01:21,510 --> 00:01:27,510
Acabamos de ver que, quando adicionamos uma propriedade ao objeto de protótipo de pessoa, era acessível a partir de

21
00:01:27,510 --> 00:01:31,120
objetos criados por essa função de construtor usando a nova palavra-chave.

22
00:01:31,470 --> 00:01:37,110
Então dissemos que a razão pela qual isso foi possível é por causa da forma como o javascript

23
00:01:37,140 --> 00:01:38,210
procura métodos e propriedades.

24
00:01:38,490 --> 00:01:40,110
Vamos mostrar um exemplo.

25
00:01:40,110 --> 00:01:44,920
Eu vou fazer uma variável chamada R e configurá-la igual a uma matriz vazia.

26
00:01:44,940 --> 00:01:48,250
O que eu realmente fiz foi uma abreviatura para escrever uma nova matriz.

27
00:01:48,510 --> 00:01:53,770
Eu uso o construtor incorporado para javascript chamado array e conheço um novo objeto dele.

28
00:01:53,820 --> 00:01:59,400
Também sabemos em javascript que nossos arrays possuem um método chamado Push que adiciona algo ao final

29
00:01:59,430 --> 00:02:00,450
de uma matriz.

30
00:02:00,660 --> 00:02:05,120
Mas, onde é definido este método de pressão e como o javascript sabe onde encontrá-lo.

31
00:02:05,130 --> 00:02:08,060
A resposta mais uma vez está em Dunder Prato.

32
00:02:08,510 --> 00:02:09,250
Vamos cancelar isso.

33
00:02:09,250 --> 00:02:09,640
D'oh.

34
00:02:09,660 --> 00:02:17,070
A variável R e vemos que todo esse objeto possui uma propriedade chamada lenth. Mas de onde vem

35
00:02:17,070 --> 00:02:18,090
o método push.

36
00:02:18,420 --> 00:02:23,250
Bem, vamos examinar o que o Dunder Prato desta nossa variável é.

37
00:02:23,250 --> 00:02:31,590
É de fato o protótipo de ponto da matriz, podemos provar que mostrando que estão sob Prato triplo é igual a

38
00:02:31,680 --> 00:02:35,120
um protótipo de radar que é avaliado como verdadeiro.

39
00:02:35,130 --> 00:02:40,320
Assim, a maneira como o javascript encontra métodos e propriedades é olhando para o objeto e se ele

40
00:02:40,320 --> 00:02:46,020
não consegue encontrar o método ou a propriedade que você está procurando, ele vai para aquele objeto dontor proto.

41
00:02:46,020 --> 00:02:49,810
Isso realmente acontece acontecendo até que a propriedade ou método seja encontrado.

42
00:02:49,950 --> 00:02:56,010
E se não for encontrado, a expressão avalia para indefinido, podemos ver isso ainda mais

43
00:02:56,010 --> 00:02:58,260
com outro exemplo em javascript.

44
00:02:58,260 --> 00:03:04,800
Todo objeto tem um método chamado possui propriedade que retorna true se o objeto tiver uma propriedade especificada

45
00:03:05,160 --> 00:03:08,370
como um parâmetro do método de propriedade na propriedade.

46
00:03:08,430 --> 00:03:09,600
O que isso significa.

47
00:03:09,630 --> 00:03:12,300
Às vezes, um exemplo de código vale mais do que mil palavras.

48
00:03:12,300 --> 00:03:15,670
Vamos voltar para a nossa variável.

49
00:03:15,750 --> 00:03:22,170
Vamos tentar ver se a nossa variável tem uma propriedade própria de comprimento, mas onde esse

50
00:03:22,170 --> 00:03:23,460
método está localizado.

51
00:03:23,460 --> 00:03:26,550
Vejamos nossa nossa variável com console de ponto DIR.

52
00:03:26,640 --> 00:03:30,800
Você também pode digitar Diyar, mas não parece estar aqui.

53
00:03:31,080 --> 00:03:32,680
Então, o que o javascript faz?

54
00:03:32,700 --> 00:03:39,240
Ele subiu a cadeia do protótipo e encontra o próximo produto que podemos ver que o próximo sob Prato

55
00:03:39,240 --> 00:03:41,090
é o protótipo do objeto.

56
00:03:41,310 --> 00:03:43,810
E aqui é onde esse método é encontrado.

57
00:03:44,010 --> 00:03:47,040
Podemos ilustrar isso também com o diagrama.

58
00:03:47,040 --> 00:03:51,150
Mais uma vez os círculos são funções e os quadrados são objetos.

59
00:03:51,150 --> 00:03:56,220
Aqui vemos uma variável R que possui um donato Prato de um protótipo de radar.

60
00:03:56,220 --> 00:04:03,150
O protótipo de matriz é também um objeto e possui seu próprio donador Prato que aponta para

61
00:04:03,720 --> 00:04:08,840
protótipo de objeto cada objeto em javascript contém o objeto do protótipo.

62
00:04:08,880 --> 00:04:15,360
É aí que métodos como a propriedade própria provêm do Dunder Prato do objeto que o protótipo é

63
00:04:15,660 --> 00:04:19,480
nulo e é aí que a cadeia do protótipo pára.

64
00:04:19,500 --> 00:04:25,170
vimos como o javascript olhará para um objeto e verá se o método ou propriedade que você procura existe.

65
00:04:25,170 --> 00:04:30,170
Para recapitular, analisamos a forma como o javascript encontra métodos e propriedades usando a cadeia de protótipo,

66
00:04:30,330 --> 00:04:36,190
E, se não, vai a objetos Dondre Prato e repita até que não haja outro programa Dondre

67
00:04:37,140 --> 00:04:38,040
no próximo vídeo.

68
00:04:38,070 --> 00:04:42,710
Falaremos mais sobre o valor do protótipo de propriedade e prática com um exercício.

69
00:04:42,720 --> 00:04:43,420
Veja-nos em
