什么时候执行匿名函数?它没有名字可以打电话!

时间:2009-07-11 04:32:39

标签: lambda anonymous-function

我知道它不会立即执行,但是什么时候执行?

2 个答案:

答案 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