手写Function.prototype.bind练习
2018-02-28 本文已影响0人
Creator93
if(!Function.prototype.bind){
Function.prototype.bind = function (oThis){
if(typeof this != 'function'){
throw TypeError("Function.prototype.bind-what is trying"+" to be bound is not callable");
}
var aArgs = Array.prototype.slice.call(arguments,1),
fToBind = this,
fNOP = function (){},
fBound = function (){
return fToBind.apply(this instanceof fNOP && oThis ? this:oThis,aArgs.concat(Array.prototype.slice(arguments)));
}
fNOP.prototype = this.prototype;
fBound.prototype = new fNOP();
return fBound;
};
}