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
原文地址:https://www.cnblogs.com/xubj/p/9883280.html