2

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

4

2 回答 2

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参数名称。所以有一个名字可以调用,然后被调用。

于 2009-07-11T04:39:22.140 回答
1

匿名函数也可以在定义后立即执行,而无需在运行时将其绑定到任何名称。Javascript 示例:

var o = "hello world";
(function(msg) {
  alert(msg);
})(o);

这通常用于创建范围

于 2009-07-11T04:48:19.330 回答