婷婷同学_
参数自己整体是一个“块”,仅此而已。你通过断点单步搞明白代码执行的流程,剩下的就是 闭包行为 ,变量名“逐级向上”,直到 global 。扯那么多没用的 ……debugger;var x = 1;var a = 999;function foo(x, y = function() { debugger; console.log(x) // 12 x = 22; console.log(a) // 999 a = 8; console.log(a) // 8 z = 123; return function(){ return x } } ){ debugger; var x = 3; var a = 0; var f = y(); console.log(f()); // 22 console.log(x); // 3}foo(12)console.log(x) // 1console.log(a) // 8console.log(global.z) // 123