当let块范围变量出现后,可以方便解决 for循环i变量绑定问题,demo 如下
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<title>let 解决for 循环闭包变量问题</title>
<script type="text/javascript">
function init() {
var pAry = document.getElementsByTagName("p");
for (let i = 0; i < pAry.length; i++) {
pAry[i].onclick = function () {
alert(i);
}
}
}
</script>
</head>
<body onload="init();">
<p>产品一</p>
<p>产品二</p>
<p>产品三</p>
<p>产品四</p>
<p>产品五</p>
</body>
</html>
参看文档 http://www.cnblogs.com/syf/archive/2012/10/04/2711828.html
https://msdn.microsoft.com/zh-cn/library/dn263046(v=vs.94).aspx
http://www.108js.com/article/article1/10177.html?id=899
函数内部访问了与函数同级的变量,那么该变量是常驻内存的。访问该变量实质上是访问的是变量的地址;