此代码在ie8中导致一个奇怪的错误。它来自MicrosoftAjaxAdoNet.js在link textIE8中奇怪的js数组分配错误
function Sys$Data$_AdoNetBatchWriter$startChangeSet() {
this._changesetBoundary = "changeset_" + this._createBoundary();
this._changesetEntries = [];
}
调用此函数之前,this._changesetEntries始终为空。我希望在调用这个函数后,他的._changesetEntries将变成一个空数组。它发生在铬,火狐,ie8预期。在ie8中并不总是如此,我发现有时这个函数创建一个方法“indexOf(v,n)”而不是空数组。
这种奇怪的行为引起其他错误在这里link text
编辑指出:现在我可以从我的代码隔离这个问题,当我用鱼眼的jQuery插件,也会出现此问题。在此插件,也有类似
[].indexOf || (Array.prototype.indexOf = function (v, n) {
n = (n == null) ? 0 : n;
var m = this.length;
for (var i = n; i < m; i++)
if (this[i] == v) return i;
return -1;
})
这是这个问题的原因。