繁体   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