let x = 1;
function foo( y = function() { x = 2; }) {
var x;
y();
}
foo();
这个函数执行到y的时候x会自动等于1
let x = 1;function foo( y = function() { x = 2; }) {
let x;
y();
}
foo();
这块执行到y的时候x则是undefined
问题一:
为什么两次函数中的初始化x值不一样?这是var复用的上级let吗?
问题二:
这俩函数执行后最后结果都是2,为什么函数内的let修改会影响上级?请大神详细解释一下,这块看了半天没懂
添加回答
举报
0/150
提交
取消