1.关于闭包
for(var i = 0;i < 5;i++){
$("a").click(function(){
console.log(i);
});
}
打印结果:55555;
原因:在上面的这段代码,执行完for循环的时候,
i的值是5,a标签绑定了5次click,那么最后点击的时候当然会输出5个5
---------------------------------------------------------------
for(var i = 0;i < 5;i++){
(function(index){
$("a").click(function(){
console.log(index);
});
})(i);
我们可以看到在循环内部click事件之前加入了闭包,这样每次绑定都通过匿名函数将i传给click事件,
这样点击后就能打赢出1,2,3,4,5了。我们可以看到匿名函数和函数最后多了一个参数,这段代码相当于:
(function(){
var index = i;
});
2、this指针
this.id = id;
this.name = name;
this.getId = function(){
return this.id;
};
};
var person = new Person(1,"lynn");
this就是:谁调用代表谁,很明显,下面new了一个Person对象,那么就是person来调用,所以这里的this代表的都是person。
3、for和for...in
for(var i = 0;i < 5;i++){
}
for(var i in person){
}
for循环的i是索引,而for...in循环的i是对象属性,因此如果我们要循环一个数组的元素的时候一定要用for循环,
而需要得到对象的属性的时候,我们要用for...in循环。
1.关于闭包
for(var i = 0;i < 5;i++){
$("a").click(function(){
console.log(i);
});
}
打印结果:55555;
原因:在上面的这段代码,执行完for循环的时候,
i的值是5,a标签绑定了5次click,那么最后点击的时候当然会输出5个5
---------------------------------------------------------------
for(var i = 0;i < 5;i++){
(function(index){
$("a").click(function(){
console.log(index);
});
})(i);
我们可以看到在循环内部click事件之前加入了闭包,这样每次绑定都通过匿名函数将i传给click事件,
这样点击后就能打赢出1,2,3,4,5了。我们可以看到匿名函数和函数最后多了一个参数,这段代码相当于:
(function(){
var index = i;
});
2、this指针
this.id = id;
this.name = name;
this.getId = function(){
return this.id;
};
};
var person = new Person(1,"lynn");
this就是:谁调用代表谁,很明显,下面new了一个Person对象,那么就是person来调用,所以这里的this代表的都是person。
3、for和for...in
for(var i = 0;i < 5;i++){
}
for(var i in person){
}
for循环的i是索引,而for...in循环的i是对象属性,因此如果我们要循环一个数组的元素的时候一定要用for循环,
而需要得到对象的属性的时候,我们要用for...in循环。
JavaScript 相关知识
最新推荐文章于 2024-03-24 20:16:44 发布