为什么在扩展Array.prototype时kendo UI会中断?

时间:2017-11-07 11:41:11

标签: javascript arrays kendo-ui prototype

我有一个现有的复杂页面,上面有一堆剑道控件。 其中一个控件是树视图。

当我将此添加到我的页面时......

Array.prototype.move = function (old_index, new_index) {
    if (new_index >= this.length) {
        var k = new_index - this.length;
        while ((k--) + 1) { this.push(undefined); }
    }
    this.splice(new_index, 0, this.splice(old_index, 1)[0]);
};

...并在我的树视图中深入扩展2个级别,我得到一个例外......

VM25771:3 Uncaught TypeError: item.level is not a function
    at eval (eval at compile (kendo.all.js:194), <anonymous>:3:222)
    at Object.eval [as itemElement] (eval at compile (kendo.all.js:194), <anonymous>:3:244)
    at Object.eval [as item] (eval at compile (kendo.all.js:194), <anonymous>:3:459)
    at init._renderItem (kendo.all.js:75601)
    at init._insertNode (kendo.all.js:75004)
    at init._appendItems (kendo.all.js:75132)
    at init.refresh (kendo.all.js:75228)
    at init.d (jquery-1.12.4.min.js:2)
    at init.trigger (kendo.all.js:124)
    at init._process (kendo.all.js:6938)

...我想,也许我已经完成了剑道所做的事情,所以我从我的页面中删除了proto方法并将一个手表放在“Array.prototype”中......没有提到列出的移动功能。 / p>

然后我想可能有一些内部的东西没有出现所以我将我的原型函数重命名为随机的东西......

Array.prototype.foobar = function (old_index, new_index) {
    if (new_index >= this.length) {
        var k = new_index - this.length;
        while ((k--) + 1) { this.push(undefined); }
    }
    this.splice(new_index, 0, this.splice(old_index, 1)[0]);
};

......问题又回来了。

有谁知道可能导致这种情况的原因?

0 个答案:

没有答案