[英]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
返回時,其上下文也會彈出。
這兩個函數都可以通過作用域鏈訪問變量x
和y
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.