我正在尝试掌握执行上下文并对 for 循环有疑问。
考虑以下...
function copyArrayAndMutate(array, instructions) {
let output = []
for(let i = 0; i < array.length; i++) {
output.push(instructions(array[i]));
}
return output;
}
function multiplyByTwo(input) {
return input * 2;
}
const result = copyArrayAndMutate([1,2,3], multiplyByTwo)
在高层次上,我理解这些函数将在全局执行上下文中定义,一旦被调用,它们将创建自己的本地执行上下文,执行线程将移动到该上下文中,上下文的条目被推送到堆。
我的问题是,for 循环会有自己的执行上下文吗?如果是这样,并且执行上下文有自己的内存,那么输出如何仍然存在于 for 循环的上下文中?
这是因为 for 循环的本地执行上下文存在于 copyArrayAndMutate 的上下文中吗?