我有以下代码片段,我在其中声明并立即调用了该函数。 我无法将我对闭包的理解与此示例联系起来
(function () {
try {
throw new Error();
} catch (x) {
var x = 1;
console.log(x); // 1
}
console.log(x); // undefined
})();
x记录在Catch范围内,但不在本地范围内。 如果将错误对象的名称从x更改为z,则x值将记录在本地范围内,并分别输出为1、1。