Bentornato nel video precedente abbiamo discusso la terza regola per determinare il
valore della parola chiave questo legame esplicito.
Abbiamo imparato che l'utilizzo di call apply e bind può modificare il contesto della parola chiave.
Vediamo come possiamo risolvere il nostro problema precedente utilizzando la chiamata, il primo blocco di codice è identico a quello
che abbiamo visto prima.
Ma vediamo cosa sta succedendo nella seconda sezione.
Precedentemente stavamo chiamando la persona cane cane dire ciao che stava tornando Ciao.
della funzione say ciao fa riferimento all'oggetto dog che non ha una proprietà first name.
Undefined si verifica perché il valore della parola chiave all'interno
Dal momento che stiamo usando la chiamata, ora possiamo cambiare ciò che vogliamo che sia il valore della parola chiave.
Quindi cambiamo per essere l'oggetto persona.
Ora che lo abbiamo fatto, possiamo vedere che la funzione restituisce Hello e il nostro problema è stato risolto.
Possiamo anche utilizzare la funzione di determinazione del contesto all'interno dell'oggetto dog e modificare il valore della
parola chiave this per rendere la funzione restituita true.
Una cosa importante da notare è che non stiamo invocando il dire ciao o determinare il metodo di contesto semplicemente
associamo la chiamata su di essa.
Quindi non ci sono parentesi dopo dire ciao e determinare il contesto.
Quando usiamo la chiamata, molto comunemente la chiamata viene utilizzata per evitare l'applicazione di codice come nell'esempio seguente.
Qui abbiamo due oggetti freddi e L. E. che entrambi hanno una proprietà di primo nome e dicono metodo Hi.
Mentre questo codice funziona perfettamente, ci stiamo ripetendo un po 'all'interno
dell'oggetto Elete per dire che il metodo hi all'interno dell'oggetto è identico allo stesso metodo all'interno dell'oggetto freddo.
Come possiamo refactoring il nostro codice e sbarazzarsi del metodo alto all'interno dell'oggetto.
Quello che ci piace davvero è usare lo stesso metodo alto dell'oggetto cult.
Ma invece della parola chiave che si riferisce al freddo, vogliamo impostarlo esplicitamente come oggetto L-E.
Metti in pausa il video ora e vedi se riesci a capire come risolvere il problema usando la chiamata.
Diamo un'occhiata a una soluzione.
Rimuoviamo il metodo say hi dall'oggetto e usiamo call per impostare il valore della parola chiave
this come L-E.
Quando viene invocato il metodo say hi, il primo parametro del metodo call è ciò a cui si desidera
che la parola chiave faccia riferimento.
Lo chiamiamo questo ARG.
Ancora una volta questa roba è abbastanza complicata.
Quindi se ti senti un po 'confuso guarda la diapositiva precedente e assicurati di
digitare questi esempi nella console di Chrome per vedere esattamente cosa sta succedendo nel prossimo video.
Daremo un'occhiata a apply e vediamo come possiamo impostare il contesto della parola chiave this using
apply e passare argomenti alla funzione in cui chiamiamo apply.
Dall'altra