call apply bind的使用方法和区别

call

1.改变this指向   2.执行函数    3.传参

var obj={};
   function fun(a,b){
       console.log(a,b,this);
   }
   fun(1,2);    //1,2,window
   fun.call(obj,3,4);  //3,4,obj

apply

1.改变this指向,执行函数,传参(参数必须是数组的形式)

   var obj={};
   function fun(a,b){
       console.log(a,b,this);
   }
   fun(1,2);
   fun.apply(obj,[3,4]);

bind

1.改变this指向  2.执行函数(bind方法不会立即执行函数,而是返回了一个新的函数,新的函数调用的时候才会执行) 3.传参(参数会传递到返回的函数中,例下面的3,4会传递到fun1中,即fun1(3,4))

var obj={};
   function fun(a,b){
       console.log(a,b,this);
   }
   fun(1,2);
   var fun1=fun.bind(obj,3,4);
   fun1();
原文地址:https://www.cnblogs.com/maozo/p/11693126.html