关于JavaScript中this的一些理解

来源:互联网 发布:黑色沙漠捏脸数据下载 编辑:程序博客网 时间:2024/05/13 11:23

        在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指向这个新对象。


        

原创粉丝点击