区别:call和apply调用就是执行函数 bind返回新函数
bind利用call或apply兼容ie8的自定义函数:if(Function.prototype.bind==undefined){ Function.prototype.bind=function(obj){ //this指的是将来调用bind的方法 var fun=this; var args1=[].slice(arguments,1); return function(){在这个函数里执行的其实就是将来调用bind的方法,但是因为直接返回了这个function,所以这里的this指的是window,因此不能直接写this();用闭包: var args2=[].slice(arguments); fun.apply(obj,args1.concat(args2)); }}
网友评论