天天看點

關于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指向這個新對象。

繼續閱讀