Ora che abbiamo una buona idea di come funziona la prima regola quando la parola chiave
è fuori da un oggetto dichiarato, vediamo cosa succede quando la parola chiave si trova all'interno di un oggetto dichiarato.
La seconda regola che chiamiamo la regola implicita o oggetto afferma che quando la parola chiave
si trova all'interno di un oggetto dichiarato, il valore della parola chiave sarà sempre l'oggetto padre più vicino che era un
sacco di parole.
Vediamo cosa intendiamo con questo guardando il codice sulla diapositiva.
Qui abbiamo un oggetto Person ma la chiave è un nome.
Dì ciao e determina il contesto.
Iniziamo con il metodo hi, all'interno di questa funzione, stiamo restituendo il valore della stringa.
Ciao concatenato con il valore della proprietà first name sulla parola chiave.
Questo Dal momento che vediamo che la parola chiave è all'interno di un oggetto dichiarato, guardiamo l'oggetto padre più
vicino per capire il valore della parola chiave.
Questo possiamo vedere che l'oggetto padre più vicino è la variabile persona che significa che il valore della
parola chiave.
Questo è l'oggetto della persona.
Ora esaminiamo il metodo di determinazione del contesto.
Questa funzione dovrebbe restituire vero o falso.
Si noti che stiamo usando triple equals che valuteranno sempre un valore booleano.
Cosa pensi che questa funzione restituirà.
Pensa a dove vedi la parola chiave.
Questo è dentro o fuori un oggetto dichiarato.
Vediamo che la parola chiave è all'interno dell'oggetto della persona, il che significa che sarà uguale
all'oggetto della persona.
Quindi questa espressione dovrebbe valere come vera prima di andare avanti.
Prenditi un secondo per esaminare questo codice e inserirlo nella console di cromo o nell'editor di testo per vedere esattamente
cosa sta succedendo.
Ora abbiamo affermato nella regola implicita che il valore della parola chiave sarà sempre l'oggetto
padre più vicino.
Ma vediamo come le cose diventano un po 'complicate con gli oggetti nidificati.
Passiamo attraverso questo codice.
Qui vediamo che abbiamo una variabile persona, ma questa volta viene chiamata la proprietà del primo nome.
Ancora una volta abbiamo un metodo hi e determiniamo il metodo del contesto.
Prenditi un secondo e pensa a quelle funzioni che torneranno quando chiamate.
Ora notiamo che abbiamo una chiave aggiuntiva nell'oggetto persona chiamato cane.
Il valore dell'asino è in realtà un altro oggetto.
Quindi esaminiamo l'oggetto nidificato all'interno dell'oggetto dog.
Abbiamo una chiave di dire ciao, che è una funzione che restituisce la stringa Hello unita alla parola chiave.
Utilizzando le due regole per determinare il valore della parola chiave, fai una pausa nel video
e prova a capire quale sia il valore della parola chiave all'interno della funzione Ciao.
Quindi verrebbe fuori.
Qual è la parola chiave che si riferisce alla persona oggetto l'oggetto cane.
O forse l'oggetto globale.
Bene, torniamo alla nostra prima regola che afferma che se la parola chiave non è
all'interno di un oggetto dichiarato, sarà l'oggetto globale.
In questo caso vediamo che la parola chiave è all'interno di un oggetto dichiarato chiamato Persona.
Quindi passiamo alla seconda regola.
La seconda regola afferma che il valore della parola chiave sarà sempre l'oggetto padre più vicino.
È qui che le cose diventano un po 'complicate anche se l'oggetto dichiarato è una persona.
All'interno c'è un oggetto chiamato Dog, che è l'oggetto genitore più vicino al metodo say ciao.
Ora che sappiamo che la parola chiave questo all'interno del metodo say ciao fa riferimento all'oggetto cane qual è
il valore di questa roba.
Nome all'interno del metodo say ciao.
Poiché l'oggetto dog non ha una chiave di nome, il valore sarà indefinito.
Quindi, perché non chiamiamo il metodo say ciao digitando person dog.
Saluta, possiamo vederli restituire.
Ciao indefinito.
Possiamo anche vedere che la nostra determinata funzione di contesto all'interno dell'oggetto dog restituisce false
perché la parola chiave all'interno della funzione di contesto determinante non fa più riferimento all'oggetto persona.
Quindi, come possiamo aggiustarlo o se vogliamo che il nostro metodo Say hello ritorni.
Ciao freddo invece di ciao indefinito avresti bisogno di un modo per cambiare esplicitamente il valore della parola chiave
questo e questo è esattamente ciò che la chiamata si applica e le funzioni di bind possono fare per noi nel prossimo video.
Vedremo la terza regola per determinare il valore della parola chiave che utilizza questa chiamata e associare.
Le cose stanno diventando eccitanti.
Ci vediamo nel prossimo video.