<!DOCTYPE html>
<html>
<head lang="en">
<meta charset="UTF-8">
<title></title>
</head>
<body>
<input value="点击0" type="button"/>
<input value="点击1" type="button"/>
<input value="点击2" type="button"/>
<input value="点击3" type="button"/>
<input value="点击4" type="button"/>
<input value="点击5" type="button"/>
</body>
<script type="text/javascript">
var s=document.getElementsByTagName('input'); //获取整个网页的标签
window.onload=function(){
for(var i=0;i< s.length;i++){
s[i].onclick=(function(num){
return function(){show(num)}
})(i)
}
};
function show(num){
alert("你好,请"+num+"号嘉宾领奖")
}
</script>
</html>
里面有一段代码看不懂
for(var i=0;i< s.length;i++){
s[i].onclick=(function(num){
return function(){show(num)}
})(i)
}
看不明白, 那个(i)为什么放到最后面,i的值怎么传给num的?
闭包的知识,最经典的例子
表示还是看不懂啊, 那个(i)为什么放到最后面,i的值怎么传给num的?
作用是传值给闭包,很简单
然并卵...自学太苦恼了. 得不到答案呐....= - -
闭包的知识,有兴趣百度看看
s[i].onclick=(function(num){
return function(){show(num)}
})(i)
当一个函数定义完,我们想立即调用怎么办?
function a(s){
alert(s)
}
在后面加上小括号,为了防止报错,给函数加上运算符或者无实意的括号,比如:
+function a(s){
alert(s)
}(3)
(function a(s){
alert(s)
})(3)
(function a(s){
alert(s)
}(3))
传值给闭包,也学习了一下