// 实现bind函数步骤
// 1.判断调用对象是否为函数
// 2.保存当前函数的引用,获取其余传入参数值
// 3.创建一个函数返回
// 4.函数内部使用applay来绑定函数调用,需要判断函数作为构造函数的情况,这个时候需要传入当前函数的this为apply调用,其余情况都传入指定的上下文
Function.prototype.myBind=function(context){
// 判断调用对象是否为函数
if(typeof this!=="function"){
throw new TypeError("Error");
}
// 获取参数
var args = [...arguments].slice(1),
fn=this;
return function Fn(){
// 根据调用方式,传入不同绑定值
return fn.apply(this instanceof Fn? this :context,agrs.concat(...arguments));
};
};