bind的-polyfill

2019-03-11  本文已影响0人  凡凡的小web

//////////////////

Function.prototype.bind = Function.prototype.bind || function (oThis) {

    if (!cc.isFunction(this)) {

        // closest thing possible to the ECMAScript 5

        // internal IsCallable function

        throw new TypeError("Function.prototype.bind - what is trying to be bound is not callable");

    }

    var aArgs = Array.prototype.slice.call(arguments, 1),

        fToBind = this,

        fNOP = function () {},

        fBound = function () {

            return fToBind.apply(this instanceof fNOP && oThis

                ? this

                : oThis,

                aArgs.concat(Array.prototype.slice.call(arguments)));

        };

    fNOP.prototype = this.prototype;

    fBound.prototype = new fNOP();

    return fBound;

};

上一篇下一篇

猜你喜欢

热点阅读