javascript中的嵌套函数内存使用情况

时间:2009-03-12 06:14:21

标签: javascript memory closures

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

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

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

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

1 个答案:

答案 0 :(得分:3)

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

几个月前我问了一个与此相似的问题:它也可能对你有所帮助。 Does use of anonymous functions affect performance?