回调的定义:

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

例如:

如果您希望在用户点击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 在单击该组件时在警告框中显示“我被点击了”

有帮助吗?

解决方案

在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!");
        };
);

也有效。

编辑在第二句中添加了一句:“我不那么熟悉”

其他提示

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

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

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

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

是的,这是一个回调。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top