简单通过几个例子记录一下自己对 this 的理 解:
-
function fn(){ alert(this) --------->window.alert(this) //此时的this指的是 window } fn();
上面这种函数调用方式我会经常用到。
-
oDiv.onclick=fn; //此时fn里的this指的就是 oDiv
接下来让我们看看元素点击事件
-
oDiv.onclick=function(){ 1.this; //这是当前this --------->oDiv 2.fn(); //此函数中的this(上面第一个函数)------------------>window }
可能还会使用行内事件
-
<div onclick="this.style.color='red' "></div> //此时的this一看就知道是当前的div
-
<div onclick="fn()"></div> //此时fn()函数里的this指的是 window
对第3个例子进行一个应用 :当前this与fn()函数的this指的不是同一个对象 如果我们想要做下面这个例子,那就是不会实现.
这就需要我们保存this,用其他变量代替。 -
oDiv.onclick=function(){ 改: fn1(that); 添加 that=this;别忘记传参啊;
} function fn1(that){ this.style.color="red"; 改为: that.style.color="red"; }