//1.原生判断
Function.prototype.bind = Function.prototype.bind || function (context) {
//2.先验证类型
if (typeof this !== 'function') {
throw new Error('Function.prototype.bind need function');
}
//3.保存this
const self = this;
//4.保存第一部分参数
const argFirst = Array.prototype.slice.call(arguments, 1);
return function () {
//第二部分参数
const argSecond = Array.prototype.slice.call(arguments);
//5.合并参数
return self.apply(context, argFirst.concat(argSecond));
}
}
网友评论