Isso se encaixa a sua definição de uma chamada de retorno?
-
03-07-2019 - |
Pergunta
Definição de chamada de retorno:
Uma função que é definida como uma propriedade dentro de um componente. E, geralmente é chamado quando algum evento ocorre no componente.
Por exemplo:
Se você deseja exibir um diálogo que lê "I foi clicado" quando o usuário clica no componente componentB , você deve escrever um método armazenado como uma variável que faz isso:
var mouseDownCallbackFunction = function() {
alert("I was clicked!");
};
Avançar , você definiria essa função dentro do componente assim ...
// Set the Component to display the dialog when the
// user presses the mouse down on it.
componentB.setMouseDownCallback(mouseDownCallbackFunction);
E isso faria com que mouseDownCallbackFunction para exibir "I foi clicado" em uma caixa de alerta quando o componente foi clicado.
Solução
Em C, que seria um callback válido. No entanto, eu não estou tão familiarizado com JavaScript para dizer se é ou não, porque eu não tenho certeza como as variáveis ??são tratados com respeito às suas posições de memória.
Em C / C ++, você poderia declarar um ponteiro nulo:
void aFunction()
{
do stuff
}
int main()
{
void* myCallback = &aFunction;
componentB.setMouseDownCallback(myCallback);
}
trabalho seria.
No entanto, apesar da minha falta de conhecimento JavaScript, eu sei que
componentB.setMouseDownCallback(function() {
alert("I was clicked!");
};
);
é válido também.
Editar acrescentou um não com a segunda frase: "Eu não sou tão familar"
Outras dicas
Sim, isso está descrevendo a definição exata de um callback ...
Em JavaScript, tecnicamente, isso é uma fechamento , uma vez que pode ligar-se a quaisquer variáveis ??no escopo que são referenciados.
Mas fechamentos são apenas uma forma melhor de retorno de chamada, então sim que é uma chamada de retorno. Uma chamada de retorno em C é mais primitiva, proporcionando apenas uma referência ponteiro para uma função digitada, sem ligação a qualquer contexto.
Sim, um callback é uma função que é definida em um nível superior ao que é chamado. O seu código de cliente cria a função, em seguida, passa-lo como um parâmetro para componentB
, para componentB
chamá-lo mais tarde.
Sim, isso é uma chamada de retorno.