call apply bind的使用方法和区别

旧城冷巷雨未停 提交于 2019-12-01 16:29:06

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();

 

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!