关于JavaScript中this的一些理解

        在JavaScript中this有着极其重要的应用,所以理解this的用法十分必要。

        关于this,大多时候存在着这样的误区,如下:

         1、认为this指向函数自身

         2、this指向函数的作用域

              

             实际上,this是在函数执行时候绑定的,它的上下文取决于函数调用时的各种条件。


        关于this 的绑定规则,大致分为以下几种:

        1、函数调用:当没有明确的执行时,this指向全局对象。

              例:

         var name='tom';

         var joo={

         name:'joo',

         show:function(){

         alert(this.name);

         }


         }

         var show=joo.show;

          show();  

         2、隐式绑定:需考虑调用位置是否有上下文对象,或者说是否被某个对象拥有或者包含。对象属性引用链中只有最顶层或者说最后一层会影响调用位置。

          例:

          function foo(){

          console.log(this.a);

          } 

          var o1={

           a:1,

           foo:foo

          } ;

          var o2={

          a:1,

          foo:foo

           };

        o1.o2.foo();//1

         3、显式绑定 :使用call()和apply()方法

         4、new绑定:即作为构造函数调用,通过这个函数生成一个新对象,这时,this指向这个新对象。


        

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值