多话不说上代码,我们也知道 call,apply,bind都是可以改变this指向问题,那么他们三个的区别是什么呢,apply只能直接数组格式,而bind是预处理先不执行
Function.prototype.call=function(context,...prams){
if(concxt===null) context=window;
if(!/^(object|functon)$/i.test(typeof context)) context=Object(context)
let key=Symbol(),result;
context[key]=this;
result= context[key](...prams)
delete context[key]
return result;
}
call,apply就以实现,那我们再来写写bind
Function.proto.bind=function(context,...prams){
return function(...agms){
return this.call(context,...(prams.concat(agms)))
}
}