My Assistant pt-br Explainer

Explicação de Meu assistente

Objetivo deste desafio: Usar uma função retorno de chamada para mudar a tarefa de myAssistant.

Passo a passo da solução: myAssistant é uma função que usa 2 entradas: uma string que será armazenada no parâmetro time e outra função que será armazenada no parâmetro callbackFunction.

Quando você usa uma função como entrada de outra função, ela é chamada de “função retorno de chamada” ou apenas de “retorno de chamada”. Isso é diferente das funções de aninhamento como você fez com print(pickRandom(10)) ou drawBox(pickrandom(color)) porque print() e drawBox() estão, na verdade, usando apenas a saída final da chamada pickRandom(). O assistente está usando o nome da função para que possa executá-la dentro dele mesmo.

O código inicial tem o comando myAssistant('6pm', recordShow). recordShow é o nome de uma função criada em algum código oculto adicional. '6pm' será armazenado no parâmetro time e recordShow será armazenado no parâmetro callbackFunction.

Quando myAssistant() é executado, ele registra uma mensagem para que você saiba que foi iniciado. Em seguida usa seus parâmetros, time e callbackFunction, para executar o comando callbackFunction(time). Como sabemos o que está armazenado em cada um desses parâmetros, o comando é o mesmo que recordShow('6pm'). Isso chamará a função recordShow() com o argumento '6pm'.

No final do código, você pode fazer com que o assistente “acione um alarme” ou “acenda as luzes” usando setAlarm ou turnOnLights como a função retorno de chamada. Basta lembrar que o 1º argumento de myAssistant() deve ser a hora (uma string) e o 2º argumento é o nome de uma função (ou setAlarm ou turnOnLights)

Solução do código de exemplo:

(Toque abaixo para revelar)

function myAssistant (time, callbackFunction) {

console.log('I am your personal assistant, and I am happy to help with your request');

callbackFunction(time);

}

myAssistant('6pm', recordShow);

myAssistant('10am', setAlarm);

Conceitos de JavaScript: Funções retorno de chamada, Funções de chamada, Bloco de código (função), console.log()

Código Adicional (código oculto executado antes do código do desafio):

function setAlarm(time) {

console.log('Your alarm has been set for ' + time);

}

function turnOnLights(time) {

console.log('Your lights will be turned on at ' + time);

}

function recordShow(time) {

console.log('Your show will be recorded at ' + time);

}
1 Like
1 Like