JavaScript的ES6函数polyfill重写系列

本文章通过重写ES6各个关键函数,增进自己对JavaScript的理解。

1.bind函数

Function.prototype.bind = function(){
    let thisFun = this
    //获得绑定对象
    let targetObj = arguments[0]
    //获得原来的参数
    let args = Array.prototype.slice.call(arguments,1)
    if(typeof thisFun !== 'function'){
        throw new TypeError('The first argument is not a function!')
    }
    return function(){
        //获得新传入的参数
        let args2 = Array.prototype.slice.call(arguments)
        //返回新函数需求的结果
        return thisFun.apply(targetObj,[...args,...args2])
    }
} 

参考文档:
https://developer.mozilla.org...

你可能感兴趣的:(javascriptes6)