Agora que temos uma boa idéia de como a primeira regra funciona quando a palavra-chave
está fora de um objeto declarado, vejamos o que acontece quando a palavra-chave está dentro de um objeto declarado.
A segunda regra que chamamos de regra implícita ou de objeto indica que, quando a
palavra-chave encontrada dentro de um objeto declarado, o valor da palavra-chave será sempre o objeto principal mais próximo que foi
muitas palavras.
Vamos ver o que queremos dizer com isso, olhando o código no slide.
Aqui temos um objeto Pessoa, mas a chave é um primeiro nome.
Diga oi e determine o contexto.
Vamos começar com o método de dar oi dentro dessa função, estamos retornando o valor da string.
Oi concatenado com o valor da propriedade do primeiro nome na palavra-chave.
Isto porque vemos que a palavra-chave esta está dentro de um objeto declarado, observamos o objeto pai
mais próximo para descobrir o valor da palavra-chave.
Isso podemos ver que o objeto principal mais próximo é a variável pessoa, o que significa que o valor
da palavra-chave.
Este é o objeto da pessoa.
Agora, vamos examinar o método de determinar o contexto.
Esta função deve retornar verdadeira ou falsa.
Observe que estamos usando triplos iguais que sempre avaliarão para um booleano.
O que você acha que esta função retornará.
Pense em onde você vê a palavra-chave.
Isso é dentro ou fora de um objeto declarado.
Vemos que a palavra-chave está dentro do objeto da pessoa, o que significa que igualará o
objeto da pessoa.
Então, essa expressão deve avaliar a verdadeira antes de seguir em frente.
Dê um segundo para rever este código e colocá-lo no console cromado ou editor de texto para ver exatamente o
que está acontecendo.
Agora, dizemos na regra implícita que o valor da palavra-chave este sempre será o objeto
principal mais próximo.
Mas vamos ver como as coisas ficam um pouco complicadas com os objetos aninhados.
Vamos passar por este código.
Aqui vemos que temos uma variável de pessoa, mas desta vez a propriedade do primeiro nome é chamada.
Mais uma vez, temos um método de alto método e método de contexto.
Dê um segundo e pense sobre o que essas funções irão retornar quando chamado.
Agora note que temos uma chave adicional no objeto da pessoa chamado cão.
O valor do burro é realmente outro objeto.
Então, vamos examinar o objeto aninhado dentro do objeto do cão.
Nós temos uma chave de dizer olá, que é uma função que retorna a seqüência de caracteres Hello juntou-se à palavra-chave.
Isso, usando as duas regras para determinar o valor da palavra-chave, pausa o vídeo e
tenta descobrir qual é o valor da palavra-chave dentro da função dizer "Olá".
Então, você inventaria.
Qual é a palavra-chave que se refere ao objeto de pessoa objeto do cão.
Ou talvez o objeto global.
Bem, voltemos à nossa primeira regra, que afirma que, se a palavra-chave não estiver dentro
de um objeto declarado, será o objeto global.
Neste caso, vemos que a palavra-chave está dentro de um objeto declarado chamado Pessoa.
Então, vamos para a segunda regra.
A segunda regra indica que o valor da palavra-chave será sempre o objeto principal mais próximo.
É aí que as coisas ficam um pouco complicadas mesmo que o objeto declarado seja pessoa.
Existe um objeto dentro dele, chamado Dog, que é o objeto pai mais próximo ao método say hello.
Agora que sabemos que a palavra-chave este dentro do método dizer hello se refere ao objeto cão, qual
é o valor desse material.
Primeiro nome dentro do método say hello.
Uma vez que o objeto cão não possui uma chave de primeiro nome, o valor será indefinido.
Então, por que não chamamos o método de dizer, escrevendo cão pessoa.
Diga olá, podemos ver isso retornar.
Olá indefinido.
Também podemos ver que nossa função de contexto determinada dentro do objeto do cão está retornando
falso porque a palavra-chave dentro da função de contexto determinar não se refere mais ao objeto da pessoa.
Então, como podemos corrigir isso ou se queremos que o nosso método Say hello seja retornado.
Olá frio em vez de hello indefinido, você precisaria de alguma maneira de mudar explicitamente o valor da
palavra-chave e isso é exatamente o que a chamada aplica e as funções de ligação podem fazer para nós no próximo vídeo.
Veremos a terceira regra para determinar o valor da palavra-chave que esta chamada de uso se aplica e liga.
As coisas estão ficando emocionantes.
Vejo você no próximo vídeo.