3

我有点理解 javascript 中的闭包,但我不确定它如何处理嵌套函数。例如:

var a = function(o) {
    o.someFunction(function(x) {
        // do stuff
    });
}

我知道每次调用 function 时都会创建一个新的闭包a,但是该闭包是否还包括传递给的匿名函数的新实例someFunction?如果我改为 ff 会更好:

var b = function(x) { /* do stuff */ }
var a = function(o) {
    o.someFunction(b);
}
4

1 回答 1

3

在您的第一个示例中,每次调用 a 时,都会定义一个匿名函数并将其传递给someFunction(). 这比你在第二个例子中得到的更昂贵,这是更有效的方法,因为函数(现在称为 b)只被定义一次。

几个月前我问了一个类似的问题:它也可能对你有帮助。使用匿名函数会影响性能吗?

于 2009-03-12T06:21:21.703 回答