Function.prototype.customBind=function(context,...bindArgs){ //context 是bind传入的this //...bindArgs是bind传入的参数 const self=this//当前函数本身 return function(...args){ const newArgs=bindArgs.concat(args)//拼接参数 return self.apply(context,newArgs) } } function fn(a,b,c){ console.log(this,a,b,c) } const res=fn.customBind({x:100},10,20,30) res()