6

回调的定义:

在组件中设置为属性的函数。并且通常在组件上发生某些事件时调用。

例如:

如果您希望在用户单击 Component componentB时显示一个显示“我被点击”的对话框,您可以编写一个存储为变量的方法来执行此操作:

var mouseDownCallbackFunction = function() {
    alert("I was clicked!");
};

接下来,您将在组件内设置此函数,如下所示...

// Set the Component to display the dialog when the 
// user presses the mouse down on it.
componentB.setMouseDownCallback(mouseDownCallbackFunction);

这将导致mouseDownCallbackFunction在单击组件时在警报框中显示“我被单击” 。

4

5 回答 5

3

是的,这是描述回调的确切定义......

于 2009-03-05T16:53:59.030 回答
3

在 JavaScript 中,从技术上讲,这是一个闭包,因为它可以绑定到范围内被引用的任何变量。

但是闭包只是一种更好的回调形式,所以是的,这就是回调。C 中的回调更原始,只提供对类型函数的指针引用,而不绑定到任何上下文。

于 2009-03-05T17:26:54.877 回答
2

是的,回调是定义在比调用它的更高级别的函数。您的客户端代码创建该函数,然后将其作为参数传递给componentB,以便componentB稍后调用它。

于 2009-03-05T16:55:05.517 回答
2

在 C 中,这将是一个有效的回调。但是,我不太熟悉 JavaScript 是否可以说是不是,因为我不确定如何处理变量相对于它们的内存位置。

在 C/C++ 中,您可以声明一个 void 指针:

void aFunction()
{
     do stuff
}

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

会工作。

然而,尽管我缺乏 JavaScript 知识,但我确实知道

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

也是有效的。

编辑在第二句话中添加了一个不:“我不太熟悉”

于 2009-03-05T16:56:44.827 回答
-1

是的,这是一个回调。

于 2009-03-05T16:53:27.017 回答