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修改会影响上级?请大神详细解释一下,这块看了半天没懂
相关分类