簡體   English   中英

input()函數執行上下文是否會在check()函數執行上下文中?

[英]Will the input() function execution context be inside the check() function execution context?

我的問題是關於此代碼中的執行上下文:當使用console.log調用check()函數時,input()函數執行上下文將位於check()函數執行上下文之內還是之外。

var x;
var y;
function check(){
y = input()
  if(y<10){
    return "true";
  }
  else{
    return false;
  }
}

function input(){
  x = eval(prompt("please enter a number "));
  return x;
}

console.log(check());

我只是嘗試使變量減速作用超出函數范圍,然后在函數內部分配變量。

當我將輸入添加為(9)時得到的結果是正確的,這是正確的。問題僅與上下文有關。

不是“內部”。 執行上下文在堆棧中是一個在另一個之上。

您在底部具有“全局執行上下文”。 當您調用check() ,其執行上下文將推入堆棧的頂部。

check()
-------
Global

在內部check您調用input() ,新的執行上下文將再次被推到頂部:

input()
-------
check()
-------
Global

input返回一個值時,其上下文將從數組中彈出,並繼續執行check check返回時,其上下文也會彈出。

這兩個函數都可以通過作用域鏈訪問變量xy

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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