SOURCE

// 实现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));
    };
};
console 命令行工具 X clear

                    
>
console