In ES6, IIFE is not necessary:
// IIFE写法 (function () { var tmp = ...; ... }()); // 块级作用域写法 { let tmp = ...; ... }
另外,ES6也规定,函数本身的作用域,在其所在的块级作用域之内。
function f() { console.log(‘I am outside!‘); } (function () { if(false) { // 重复声明一次函数f function f() { console.log(‘I am inside!‘); } } f(); }());
上面代码在ES5中运行,会得到“I am inside!”,但是在ES6中运行,会得到“I am outside!”
(function () { if(true) { // 重复声明一次函数f function f() { console.log(‘I am inside!‘); } f(); } }()); function f() { console.log(‘I am outside!‘); }
上面代码在ES6中运行,会得到“I am inside!”
时间: 2024-09-29 22:06:35