Thi*_*ilo 10
关闭是你如何构建它,回调就是你如何使用它.
回调可以实现为闭包(在具有它们的语言中)或接口的实现(在Java中,作为匿名内部类或常规类).
回调意味着您将一段代码传递给函数,以便函数可以稍后调用该段代码.这是一种特殊的参数.
这段代码可以是函数指针或闭包或具有众所周知方法的对象,具体取决于语言提供的内容.
闭包和匿名内部类(以及其他类)都可以用作回调.一个回调只是一些代码作为参数传递给其他代码中传递.
与Java的匿名内部类相比,闭包的一个重要区别是(在命令式语言中)闭包可以修改周围范围的变量.维基百科给出了以下示例:
var f, g;
function foo() {
var x = 0;
f = function() { return ++x; };
g = function() { return --x; };
x = 1;
alert('inside foo, call to f(): ' + f()); // "2"
}
foo();
alert('call to g(): ' + g()); // "1"
alert('call to f(): ' + f()); // "2"
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3524 次 |
| 最近记录: |