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

4

我对JavaScript中的闭包有一定的了解,但是我不确定它如何处理嵌套函数。例如:

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

我知道每次调用函数a都会创建一个新的闭包,但这个闭包是否也包含了传递给someFunction的匿名函数的新实例?如果我做以下操作会更好吗:

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

3
在你的第一个例子中,每次调用a时,都会定义一个匿名函数并将其传递给someFunction()。这比第二个例子更昂贵,第二个例子是更有效的方法,因为函数(现在称为b)只被定义一次。
我几个月前也问过类似的问题:它可能对你有帮助。Does use of anonymous functions affect performance?

谢谢,你的问题链接非常有帮助。 - jtjin

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接