bind简易实现

//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));

    }

}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容