鉴于以下两个:
方案 1
function inner() {
// a bunch of code that does stuff
}
function outer() {
inner();
}
for(var i = 0; i < 10000; i++) {
outer();
}
方案 2
function outer() {
function inner() {
// a bunch of code that does stuff
}
inner();
}
for(var i = 0; i < 10000; i++) {
outer();
}
毫无疑问,这两种情况下的行为是相同的。但是引擎盖下有什么区别?在场景 2 中,口译员做了多少额外的工作(如果有的话)?记忆有没有影响。或者说,如果身体inner()
变长,会增加对性能的影响吗?
请不要问“你为什么要这样做”,因为我的问题不是关于实际问题。只是试图更深入地了解 JS 函数是如何解析和表示的。谢谢!