1. 程式人生 > >JS學習之call與apply

JS學習之call與apply

call:呼叫函式並且改變this的指向。

語法    函式名.call(thisArg,arg1,arg2...)      (              函式名.apply(thisArg,[arg1,arg2...])                                  )
引數:
thisArg          函式中this指向的值
arg1,arg2...  從call裡的第二個引數開始,都是真正函式的引數
返回值:
undefined
注意:thisArg的值為null,undefined的時候,this的值指向了window



apply 呼叫函式並且改變this的指向
語法:
函式名.apply(thisArg,[arg1,arg2...]);
與call不同的是後面的引數必須放在陣列中

  function   fn(){
         console.log(this); //列印下看看this的指向
     }
   fn();        // window
     fn.call(1);            // 1 this指向了數字1
     fn.call('xubj');     //xubj 指向了字串
     fn.call(true);     //
true 指向了布林的true fn.call({}); // {} 指向了物件 fn.call(null); // window fn.call(undefined); // window