2009-11-27 2 views
1

이 코드는 ie8에서 이상한 버그가 발생합니다. 그것은 this._changesetEntries 항상 null의 경우,이 함수를 호출하기 전에IE8에서 이상한 js 배열 할당 버그

function Sys$Data$_AdoNetBatchWriter$startChangeSet() { 
     this._changesetBoundary = "changeset_" + this._createBoundary(); 
     this._changesetEntries = []; 
    } 

link text에 MicrosoftAjaxAdoNet.js에서 온다. 나는이 함수가 호출 된 후 _changesetEntries가 빈 배열이 될 것이라고 예상했다. chrome, firefox, 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; 

})

이 같은이 문제의 원인이되고있다.

답변

0

'가끔'귀하의 질문에 여기에 핵심 : 어떤 조건 하에서 this._changesetEntries 빈 배열보다는 함수를합니까? 일부 페이지가로드됩니까? dataService에 대한 호출이 있습니까? 일단 테스트 케이스가 있으면, 그 대답은 더욱 명백해질 수 있습니다.

0

사용 방법을 게시 할 수 있습니까? 그때까지 할 수있는 것은 추측입니다 :

이것은 생성자와 같습니다. new Sys$Data$_AdoNetBatchWriter$startChangeSet()을 사용하여 인스턴스를 사용하고 있습니까?