gpt4 book ai didi

javascript - JavaScript 中的执行上下文

转载 作者:行者123 更新时间:2023-11-29 23:24:46 25 4
gpt4 key购买 nike

我正在尝试掌握执行上下文并对循环有疑问。

考虑以下...

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 的上下文中吗?

最佳答案

My question is, will the for loop have it's own execution context?

不。 foor 循环不会它自己的执行上下文。 只有函数才能创建新的执行上下文

每次调用函数时,都会创建一个新的执行上下文,即使函数调用在另一个函数定义中也是如此。函数可用的范围由其词法环境定义:

enter image description here

总之,for循环的执行上下文是copyArrayAndMutate函数创建的,也就是说for循环使用的范围是属于copyArrayAndMutate函数的> 执行上下文,这就是循环可以访问 output 变量的原因。

关于javascript - JavaScript 中的执行上下文,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49648621/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com