假设我有这个功能:
function A() {
function B() {
return 1;
}
return 1 + B();
}
是否起作用B每次调用函数时都会编译A?
我记得有人说不会。但我的记忆力已经生锈了,找不到参考资料。
JavaScript 标准规定 JavaScript 执行环境必须解析函数并产生早期错误,拒绝执行脚本中存在的任何代码(例如缺少右引号、不匹配的大括号等)。它没有提及之后发生的事情。
然而,所有现代引擎都会在执行之前生成与该函数相对应的本机代码。所有后续调用都将使用之前生成的代码。有时,引擎会使用通过执行收集的信息重新生成代码,或者如果它可以确定这会导致更好的执行时间,它可能会内联函数的代码。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)