js中的this基础

时间:2023-03-10 04:58:45
js中的this基础

this在js中的地位可以说是相当高了,本文介绍下this的基本相关情况,以后还会慢慢介绍

在页面中aler(this)//this的指向是window

在DOM操作中this的指向是当前发生事件的对象

window.onload=function(){
var aLi=document.getElementsByTagName('li'); for(var i=0;i<aLi.length;i++){
aLi[i].onmouseover=function(){
var oDiv=this.getElementsByTagName('div')[0];
oDiv.style.display='block';
};
aLi[i].onmouseout=function(){
var oDiv=this.getElementsByTagName('div')[0];
oDiv.style.display='none';
}
}

但是当内部函数放到外部用一个函数名包起来的时候this的指向变了

window.onload=function(){
var aLi=document.getElementsByTagName('li');
var _this=null;
for(var i=0;i<aLi.length;i++){
aLi[i].onmouseover=function(){
_this=this;
//alert(this);//li
show();
};
aLi[i].onmouseout=function(){
_this=this;
hide();
}
} function show(){
//alert(this);//window 如果不把this存起来 在函数里this是指向window的
var oDiv=_this.getElementsByTagName('div')[0];
oDiv.style.display='block';
} function hide(){
var oDiv=_this.getElementsByTagName('div')[0];
oDiv.style.display='none';
}
};

总结:

this ——跟定义没关系、跟调用有关
想知道this是谁——看调用的地方

附:

this    优先级

高   new   系统替你创建的object
   定时器   window
   事件   发生事件的对象
   方法   对象
低    其他   window