jquery 对this的理解

this在编程中很容易遇到,但是在实际的运用中很容易被弄混,那么我们怎样才能分得清this究竟指的是谁呢?结合具体的实例,以笔记的形式展示出来,让大家理解this的真面目,当然使用this是有前提的,讲解从本例实际出发,读者可以结合自身情况去理解在读者使用环境下的this究竟指的是什么。

这种情况主要是再前端代码优化的情况下考虑的问题。在写代码的时候会通过全局变量的方式来实现初步的效果,但是效果出来后,变量作为全局变量就很危险,要保证变量之间不冲突,且各施其职,那就必须对变量以及函数进行封装,本例中的封装如下:

var home = {
      a:[],               //home中的全局变量
      init:function(){   //初始化所有内容函数
         this.函数名();   //调用home里面的其他函数 ------------ this指的是home
      } ,
      函数名:function(){
          var self = this;   //将指向home的this保存在self中

          //this易混淆的地方在下面,若没有将全局的this给self,就容易出错

          $(selector).find("a").each(function(){
              $(this).click(function(){        //this指的是selector下当前操作的项
                   self.a = this.xxx;          //当前项this去操作home项内容   
              })
          })
      }
  
}
home.init(); // 执行初始化内容,让页面执行

很多时候会遇到this的嵌套问题,但是只要在恰当的时机保存好this,就能准确的知道this是哪一个的this,也就不会被this绕进去啦。

方法:及时保存this给一个变量。在清醒的状态下理清谁是谁。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值