作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
当我执行以下操作时:
function makeAddFunction(amount) {
function add(number) {
return number + amount;
}
return add;
}
var addTwo = makeAddFunction(2);
var addFive = makeAddFunction(5);
alert(addTwo(1) + addFive(1));
makeAddFunction
的每个实例是否都有一个单独的堆栈,还是所有实例都将使用相同的堆栈?变量进入和离开堆栈的顺序重要吗?
最佳答案
每个函数调用都会创建一个新的函数
(-Context)。因此,为了快速回答这个问题,是的,他们将在 ECMAscripts 执行上下文
方面拥有单独的“堆栈”。
我不太确定“变量进入和离开堆栈的顺序”是什么意思。
ECMAscript 是关于上下文(对象)的。有一堆按顺序调用的执行上下文。一个上下文完成后,父上下文将继续运行,直到它也完成(依此类推)。只要有任何上下文,该原则就持续存在,如果没有,全局上下文
将再次受到关注。
关于javascript - 这个函数的堆栈会是什么样子?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6777463/
我是一名优秀的程序员,十分优秀!