函数的放置是否会影响范围内闭包的性能?如果是这样,放置这些功能的最佳位置在哪里?如果不是,那么闭包的隐含关联是否足以在逻辑上将函数放置在另一个地方?
例如,如果foo不依赖于 localState 的值,那么localState可以从foo访问这一事实是否会对foo的执行时间、内存使用等产生影响?
(function(){
var localState;
function foo(){
// code
}
function bar(){
// code
return localState;
}
})();
换句话说,这会是一个更好的选择吗?如果是,为什么?
(function(){
function foo(){
// code
}
var localState;
function bar(){
// code
return localState;
}
})();
Darius Bacon在下面建议,上面的两个示例是相同的,因为可以从块内的任何位置访问localState 。但是,下面的示例foo在块外定义可能是不同的情况。你怎么看?
function foo(){
// code
}
(function(){
var localState;
function bar(){
// code
foo();
return localState;
}
})();