<!DOCTYPE HTML>
<html>
<head><title>鼠标坐标</title>
<style>
.divtab{
width:200px;
height:20px;
background:red;
}
.divtab li {
float:left;
list-style-type:none;
background:#ccc;
display:block;
width:50px;
border:1px solid yellow;
}
.divtab .current{
background:#999;
}
.divcon {
width:200px;
height:200px;
background:#ddd;
}
#con div{
display:none;
}
</style>
<script src="http://libs.baidu.com/jquery/1.9.0/jquery.js"></script>
</head>
<body>
<script >
//最基本的不做其他操作的 这个不会有问题
/* function box (){
var arr = [];
for(var i = 0; i < 5 ;i++){
arr[i] = i;
}
return arr;
}
alert(box());
______________________________________________________________
要把数组的每项都搞成函数,这个有问题
function box (){
var arr = [];
for(var i = 0; i < 5 ;i++){
arr[i] = function(){ //执行的最后都是5了,因为这个函数确定上层 的 i
return i;
};
}
return arr;
}
var b= box();
for(var i = 0 ;i<5;i++){
alert(b[i]());
}
____________________________________________________________________
这个可以把变量i 存下来,但arr[i] 不能执行了
function box (){
var arr = [];
for(var i = 0; i < 5 ;i++){
arr[i] = (function(num){ //通过函数的及时自我执行,把i保存下来,驻留在内存中了。
return num; 但arr[i] 是数字不能执行
})(i);
}
return arr;
}
var b= box();
for(var i = 0 ;i<5;i++){
alert(b[i]());//是报错的number is not a function;
}
————————————————————————————————————————————
arr[i] 是函数可以执行
*/
function box (){
var arr = [];
for(var i = 0; i < 5 ;i++){
arr[i] = (function(num){ //通过函数的及时自我执行,把i保存下来,驻留在内存中了。
//并且arr[i] 都是函数可以执行
return function(){
console.log('sss');
return num;
}
})(i);
}
return arr;
}
var b= box();
for(var i = 0 ;i<5;i++){
alert(b[i]());//arr[i] 是函数可以执行
}
</script>
</body>
</html>
从北风网的李老师那里得到的知识
http://study.163.com/course/courseLearn.htm?courseId=252008#/learn/video?lessonId=361385&courseId=252008