for(var i=0;i<3;i++){
setTimeout(function(){console.log(i)},3000)
};
打印出三次2
for(var i=0;i<3;i++){
(function(n){
setTimeout(function(){console.log(n)},3000)
})(i)
};
打印出0 1 2
<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 (var i = 0; i < pAry.length; i++) { pAry[i].onclick = function () { alert(i); } } } </script> </head> <body οnlοad="init();"> <p>产品一</p> <p>产品二</p> <p>产品三</p> <p>产品四</p> <p>产品五</p> </body> </html>