js中的this基础

来源:互联网 发布:新版淘宝联盟自己购买 编辑:程序博客网 时间:2024/06/08 16:12
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
0 0
原创粉丝点击