[英]How will the stack of this function will look like?
當我執行以下操作時:
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
的每個實例是否都有單獨的堆棧,或者它們都將使用相同的堆棧? 變量進入和離開堆棧的順序是否重要?
每個 function 調用都會創建一個新的Function
(-Context)。 所以為了快速回答這個問題,是的,他們將在 ECMAscripts Execution Contexts
方面擁有單獨的“堆棧”。
我不太確定“變量進入和離開堆棧的順序”是什么意思。
ECMAscript 是關於上下文(對象)的。 有一堆按順序調用的執行上下文。 在一個上下文完成后,父上下文繼續運行,直到它也完成(等等)。 只要有任何上下文,該原則就會持續,如果沒有,則Global context
會再次引起注意。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.