函数是否会获取最新的更改?
重要性:5
sayHi 函数使用了一个外部变量名。当函数运行时,它将使用哪个值?
let name = "John";
function sayHi() {
alert("Hi, " + name);
}
name = "Pete";
sayHi(); // what will it show: "John" or "Pete"?
这种情况在浏览器和服务器端开发中都很常见。例如,一个函数可能被安排在创建后执行,例如在用户操作或网络请求之后。
所以,问题是:它会获取最新的更改吗?
答案是:Pete。
函数获取外部变量的当前值,它使用最新的值。
旧的变量值不会被保存。当一个函数需要一个变量时,它会从自己的词法环境或外部环境中获取当前值。