Object.prototype 的 UserScript 问题

UserScript issue with Object.prototype

我正在开发一个 UserScript,我认为为对象创建 2 个原型函数会节省更多时间。

Object.prototype.Count = function() {
    var size = 0, key;
    for (key in this) {
        if (this.hasOwnProperty(key)) {
             size++;
        }
    }
    return size;
};
Object.prototype.GetEntry = function(index) {
    var size = 0, key;
    for (key in this) {
        if (this.hasOwnProperty(key)) {
            if (size == index)
                return this[key];
             size++;
        }
    }
    return null;
};

这 2 个函数在我的调试控制台上运行得非常好,因为我输入它们并使用它们,但是当我 运行 我的脚本时,它会出现一些奇怪的错误,使我的控制台泛滥。

Uncaught TypeError: U[a].exec is not a function
Uncaught TypeError: (ec[b] || []).concat is not a function
Uncaught TypeError: X[g].exec is not a function
Uncaught TypeError: (Qn[t] || []).concat is not a function

更类似的是,站点的 JavaScript 无法正常工作。

如果没有这些函数,我的脚本会像魅力一样工作。我还有更多关于字符串的原型,但这工作得很好

String.prototype.between = function(prefix, suffix) {
    s = this;
    var i = s.indexOf(prefix);
    if (i >= 0) {
        s = s.substring(i + prefix.length);
    }
    else {
        return '';
    }
    if (suffix) {
        i = s.indexOf(suffix);
        if (i >= 0) {
            s = s.substring(0, i);
        }
        else {
            return '';
        }
    }
    return s;
}

在我的用户脚本中,我包括

  1. jQuery UI 1.11.4
  2. jQuery 1.11.1
  3. Bootstrap 3.3.5

我真的不明白问题出在哪里,因为在调试控制台上它可以正常工作,没有任何错误。

我认为这只是 jQuery 与本机原型的冲突。

所以我只能找到它来定义属性的解决方法,

Object.defineProperty(Object.prototype, 'Count ',{
  value : function() {},
  enumerable : false
});

Object.defineProperty(Object.prototype, 'GetEntry  ',{
  value : function() {},
  enumerable : false
});

jQuery conflict with native prototype.