分类: 系统运维
2012-10-10 17:03:08
今天老师系统的讲解了一下This的用法,我感觉This在JS中地位还是很重要的!
This使用的时候一般可以分为两种情况:
一:指向函数的所有者:1全局函数2.对象方法 3.绑定事件
二:传参的时候:1.setTimeout等传参形式的2.this事件监听器中的this
改变this的方法:call,apply。
This在第一种情况下是指向其所有者的,如:function test(){alert(this)}的所有者是Window;
Var o{};o.test(){alert(this)}的所有者就是o。
This在第二种情况下分为两种,在setTimeout等传参形式下This一般指向的是Window,回调函数可以当作是例子。如:
funtion moveTo(callback){callback()};
Var o{};o.test(){alert(this)}
MoveTo(o.test);这是弹出的是Window,因为o.test被当成callback传入了他的所有者是Window。
而在事件监听器中W3c要求this指向的是调用时间监听器的对象,如div等标签。但是Ie678 attachEvent指向的是Window。
二、闭包闭包的意义在于:大家还记得Tab切换的时候找到每个标签的方法吧,闭包有一种用法就是去找到那个标签。
闭包的形式:()();
for (var i=0; i<4; i++) {
divs[i].onclick=(function(ii){
return function(){
alert(ii);
}
})(i);
}
这段代码就相当于Tab切换里面的点击时候找到被点击的标签。
一些This的用法: