修改JavaScript的绑定本机函数

时间:2016-07-18 03:53:56

标签: javascript function bind

我今天看了一段代码片段,如下所示:

if (!Function.prototype.bind) {
  Function.prototype.bind = function (oThis) {
    if (typeof this !== "function") {
      // 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;
  };
}

我实际得到的是我正在构建一个三星智能电视应用程序,我在其中一个示例应用程序代码中找到了此代码。可能是智能电视JavaScript引擎在Function对象上没有任何绑定原型,并且不支持绑定事件。这就是为什么作者试图在本地Function对象上创建一个新的绑定原型。

但我真的没有得到其余代码以及它在这里真正做的事情。

0 个答案:

没有答案