首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >iOS5不支持bind()!

iOS5不支持bind()!
EN

Stack Overflow用户
提问于 2013-12-02 17:42:29
回答 2查看 498关注 0票数 5

我有一个具有原始iPad的客户端,我注意到它是不支持.bind方法

问:如果我的老板坚持支持IOS 5.1.1,那么除了把变量传递给回调之外,还有别的选择吗?我认为我不能简单地将变量放入全局范围,因为如果我在循环中,我设置的变量可能会覆盖回调所要寻找的相同的变量。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-12-02 17:45:14

您可以使用MDN提供的实现,甚至可以使用您自己的实现。

对象/函数/绑定#兼容性

代码语言:javascript
运行
复制
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;
  };
}
票数 9
EN

Stack Overflow用户

发布于 2015-01-07 16:30:25

如果您正在使用npm模块,那么只需执行以下操作就可以得到更简单的解决方案。

代码语言:javascript
运行
复制
npm install --save polyfill-function-prototype-bind

代码语言:javascript
运行
复制
require('polyfill-function-prototype-bind');

此模块包含与接受的答案相同的多填充代码。

https://www.npmjs.com/package/polyfill-function-prototype-bind

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20334494

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档