簡體   English   中英

這個 function 的堆棧會是什么樣子?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM