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
时间: 2024-11-06 09:50:30