初识js中的闭包
Posted viof7852
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了初识js中的闭包相关的知识,希望对你有一定的参考价值。
原文链接:http://www.cnblogs.com/pssp/p/5189345.html
下面我来说一个闭包的使用场景吧。
没有使用闭包的版本
window.onload = function(){ var ul = document.getElementsByTagName("ul")[0]; var li = ul.getElementsByTagName("li"); for(var i=0;i<li.length;i++){ li[i].onclick = function(){ console.log(i); //不管我怎么点都是返回6 } } }
使用了闭包的版本
window.onload = function(){ var ul = document.getElementsByTagName("ul")[0]; var li = ul.getElementsByTagName("li"); for(var i=0;i<li.length;i++){ (function(i){ li[i].onclick = function(){ console.log(i); //点击第几个返回第几个 } })(i) } }
评论区:
for(var i=0;i<li.length;i++){
(function(i){
li[i].onclick = function(){
console.log(i); //点击第几个返回第几个
}
})(i)
}
是不是类似
for(var i=0;i<li.length;i++){
function aaa(i){
li[i].onclick = function(){
console.log(i); //点击第几个返回第几个
}
}
aaa(i);
}
让aaa(i)里的参数获取i值然后传进去
以上是关于初识js中的闭包的主要内容,如果未能解决你的问题,请参考以下文章