我知道它不会立即执行,但是什么时候执行?
答案 0 :(得分:5)
是的,它不需要在声明时间有一个名称,但它可以绑定到运行时的名称。
例如在Python中:
def do_it(some_func):
# call some_func
result = some_func()
# do something else
do_it(lambda: 42)
所以lambda只返回“42”并且没有名字。但是当它传递给函数do_it
时,它会绑定到some_func
参数名称。所以是要调用的名称,然后调用它。
答案 1 :(得分:1)
匿名函数也可以在定义后立即执行,而不会在运行时将其绑定到任何名称。 Javascript示例:
var o = "hello world";
(function(msg) {
alert(msg);
})(o);
这通常用于create scopes。