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