Javascript IE8中奇怪的js数组分配错误

Javascript IE8中奇怪的js数组分配错误,javascript,asp.net-ajax,internet-explorer-8,Javascript,Asp.net Ajax,Internet Explorer 8,这段代码在ie8中导致了一个奇怪的错误。它来自微软的jaxadonet.js 调用此函数之前,this.\u changesetEntries始终为空。我希望调用此函数后,他的.\u changesetEntries将成为空数组。在chrome、firefox和ie8中,这一切如期而至。在ie8中并不总是这样,我发现有时候这个函数会创建一个方法indexOfv,n而不是空数组 这种奇怪的行为会导致此处注意到的其他错误 编辑:我现在可以从我的代码中分离出这个问题,当我使用fish eye jque

这段代码在ie8中导致了一个奇怪的错误。它来自微软的jaxadonet.js

调用此函数之前,this.\u changesetEntries始终为空。我希望调用此函数后,他的.\u changesetEntries将成为空数组。在chrome、firefox和ie8中,这一切如期而至。在ie8中并不总是这样,我发现有时候这个函数会创建一个方法indexOfv,n而不是空数组

这种奇怪的行为会导致此处注意到的其他错误

编辑:我现在可以从我的代码中分离出这个问题,当我使用fish eye 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;
}


这就是这个问题的原因

您问题中的“有时”是这里的关键:在什么条件下,这是一个函数而不是一个空数组?一些页面加载?对数据服务的一些调用?一旦你有了一个测试用例,answe可能会变得更加明显。

你能发布一下你是如何使用它的吗?在此之前,我们所能做的就是猜测:

这看起来像一个构造函数。您是否正在使用新的Sys$Data$\u ADONbatchWriter$startChangeSet进行实例化

[].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;