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

转载于:https://www.cnblogs.com/leejersey/p/3630388.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值