在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 問答/HTML/ 實現(xiàn)bind作為new調(diào)用時this會失效的問題?

實現(xiàn)bind作為new調(diào)用時this會失效的問題?

看了一個大佬寫的:

Function.prototype.bind = Function.prototype.bind || function (context) {
    var me = this;
    var args = Array.prototype.slice.call(arguments, 1);
    var F = function () {};
    F.prototype = this.prototype;
    var bound = function () {
        var innerArgs = Array.prototype.slice.call(arguments);
        var finalArgs = args.concat(innerArgs);
        return me.apply(this instanceof F ? this : context || this, finalArgs);
    }
    bound.prototype = new F();
    return bound;
}

這個是怎么做兼容的啊,大佬盡量講詳細(xì)點。還有bind this失效的具體場景?

回答
編輯回答
莓森
  1. bind第一個參數(shù)是上下文,也就是this指向,其余的參數(shù)是后續(xù)要傳給待綁定的函數(shù)的參數(shù),可以是部分,也可以是全部
  2. 里面聲明了一個函數(shù),這個函數(shù)是需要返回的;需要重新設(shè)置它的原型鏈,指向原來的函數(shù)的原型鏈;這個函數(shù)就是綁定好的函數(shù),這個函數(shù)需要把傳來的參數(shù)與先前的參數(shù)拼在一起,然后在綁定的上下文調(diào)用
  3. 不清楚你所說的this失效是什么
2018年4月25日 22:29