封装bind方法

思路:

  1.返回一个函数体

  2.改变this的指向

  3.传递参数

Function.prototype.bindTo = function(){
    //传递过来的第一个参数
    var that = arguments[0];
    //获取到剩余的参数
    var arr = Array.prototype.slice.call(arguments).slice(1);

    var _this = this;


    var fn = function(){
        var newThis = this instanceof fn?this : that
        _this.apply(newThis,arr);
    }


    //继承
    fn.prototype = {
        constructor:fn,
        __proto__:this.prototype
    }

    return fn;
}

 

posted @ 2019-03-18 09:58  SHY13  阅读(620)  评论(0编辑  收藏  举报