在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 在单击该组件时在警告框中显示“我被点击”。
答案 0 :(得分:3)
是的,这是描述回调的确切定义......
答案 1 :(得分:3)
在JavaScript中,从技术上讲,这是一个闭包,因为它可以绑定到引用范围内的任何变量。
但是闭包只是一种更好的回调形式,所以是的,这是一个回调。 C中的回调更原始,只提供对类型化函数的指针引用,而不绑定任何上下文。
答案 2 :(得分:2)
是的,回调是一个定义在比调用更高级别的函数。您的客户端代码会创建该函数,然后将其作为参数传递给componentB
,以便componentB
稍后再调用它。
答案 3 :(得分: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!");
};
);
也有效。
编辑在第二句中添加了一句:“我不是那么熟悉”
答案 4 :(得分:-1)