请思考:
function f1() {
function n11() { .. lots of code .. };
const n12 = () => { .. lots of code .. };
return n11()+n12()+5;
}
const f2 = () => {
function n21() { .. lots of code .. };
const n22 = () => { .. lots of code .. };
return n21()+n22()+5;
}
我正在尝试理解调用f1和f2的内存影响。
关于n11,这个答案说:
对于一些非常小且通常不重要的“浪费”值。 现代JavaScript引擎非常高效,可以执行各种技巧/优化。例如, 只需要在内部“复制”函数对象(但不是实际的函数代码!)。 没有实际测试用例证明存在“浪费”问题。 这种嵌套和匿名函数的习惯在JavaScript中非常常见,并且已经得到了很好的优化。
然而,我想知道这是否也适用于箭头函数(即n12、n21和n22)...每次调用f1/f2时,开销是否仅为函数对象,如上所述,还是整个嵌套函数代码都会被复制?
谢谢!