Это соответствует Вашему определению Обратного вызова?

Псевдокод:

while (list.length() > 1)
{
    list.removeElementAt(0);
}
6
задан saluce 31 August 2012 в 14:29
поделиться

5 ответов

В C, который был бы допустимым обратным вызовом. Однако я не так familar с JavaScript, чтобы сказать, ли это или не потому что я не уверен, как переменные рассматривают относительно их ячеек памяти.

В C/C++ Вы могли объявить пустой указатель:

void aFunction()
{
     do stuff
}

int main()
{
    void* myCallback = &aFunction; 
    componentB.setMouseDownCallback(myCallback);
}

Работал бы.

Однако несмотря на мое отсутствие знаний JavaScript, я действительно знаю это

componentB.setMouseDownCallback(function() {
        alert("I was clicked!");
        };
);

допустимо также.

EDIT, добавленная не к второму предложению: "Я не так familar"

2
ответ дан 10 December 2019 в 02:54
поделиться

Да, обратный вызов является функцией, это определяется в более высоком уровне, чем это называют. Ваш клиентский код создает функцию, затем передает ее в качестве параметра componentB, для componentB назвать его позже.

2
ответ дан 10 December 2019 в 02:54
поделиться

Да, это описывает точное определение обратного вызова...

3
ответ дан 10 December 2019 в 02:54
поделиться

В JavaScript, технически, это - закрытие, так как он может связать с любыми переменными в объеме, на которые ссылаются.

Но закрытия являются просто лучшей формой обратного вызова, таким образом, да это - обратный вызов. Обратный вызов в C более примитивен, обеспечивая только ссылку указателя на введенную функцию, не связывая ни с каким контекстом.

3
ответ дан 10 December 2019 в 02:54
поделиться

да, это - обратный вызов.

-1
ответ дан 10 December 2019 в 02:54
поделиться
Другие вопросы по тегам:

Похожие вопросы: