一、This用法

今天老师系统的讲解了一下This的用法,我感觉ThisJS中地位还是很重要的!

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].οnclick=(function(ii){

return function(){

alert(ii);

}

})(i);

}

这段代码就相当于Tab切换里面的点击时候找到被点击的标签。