本文主要是介绍Es6的let实现原理——代码解析,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
本质利用的是JS闭包
原始es6
代码:
var funcs = [];
for (let i = 0; i < 10; i++) { funcs[i] = function () { console.log(i); };
}
funcs[0](); // 0
babel
编译之后的 es5
代码(polyfill
):
var funcs = [];var _loop = function _loop(i) {funcs[i] = function () {console.log(i);};
};for (var i = 0; i < 10; i++) {_loop(i);
}
funcs[0](); // 0
其实我们根据 babel
编译之后的结果可以看得出来let
是借助闭包和函数作用域来实现块级作用域
的效果的 在不同的情况下 let
的编译结果是不一样的
这篇关于Es6的let实现原理——代码解析的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!