this的汇总

1.普通函数或匿名函数自调中的this->window 

  严格模式下:this->undefined

2.obj.fun()  fun中的this->obj

3.new Fun() Fun中的this->正在创建的新对象

4.原型对象中的函数里的this->将来调用当前函数的.前的类型的子对象

5.btn.onclick=function(){ .... } this->btn

6.回调函数:

      arr.forEach(function(){ ... })

      arr.map(function(){ .... })

      setInterval(function(){... })

      setTimeout(function(){ ... })

      $.ajax({

            ...

            success:function(){ ... }

     }).then(function(){

               ....

     })

this->window所有回调函数,真正被调用时,前边时没有任何"对象."前缀

所以,通常如果希望回调函数中的this不指window,而跟外部的this保持一致,都要改为箭头函数。

2.jQuery中回调函数:

    $().each(function(){  ... })

    $().animate({ ... }),ms,function(){ ... }

    jquery中的多数函数,this->当前正在操作的dom元素

3.不考虑之前已经总结的情况,vue中一切this都指向当前new Vue()对象。

所以在vue.js中访问任何变量都要加this.变量名。但是html中绑定变量名不用加this!

原文地址:https://www.cnblogs.com/sna-ling/p/13080640.html