JavaScript函数名称与jQuery

时间:2016-01-26 18:35:15

标签: javascript jquery namespaces prototype conflicting-libraries

我一直在研究一些旧的jsp页面,并且正在尝试向它引入jQuery。但是,这是我在页面上开始使用jQuery时得到的结果:

base.js:249 Uncaught TypeError: f is not a function

很明显,我们的遗留base.js和jQuery之间存在冲突。以下是base.js中导致此问题的代码段:

Object.prototype.each = function (f) {
    for (var n = 0; n < this.length; n++)    {
        f (this[n],n);     // This is line 249
    }
    return this;
};

坏消息是,我无法轻松地将此库重构出页面,因为有一些其他JavaScript库将其用于页面。

我能做些什么吗?谢谢!

1 个答案:

答案 0 :(得分:2)

快速提示:

这只是黑客工作,以解决问题:

Object.prototype.each = function (f) {
  for (var n = 0; n < this.length; n++) {
    if (typeof f == "function")
      f(this[n],n);     // This is line 249
    else
      console.log("You've got a problem here. The f is " + f);
  }
  return this;
};

以上代码可能有用,也可以帮助您调试。