2016-05-22 6 views
0

私はここでのXMLHttpRequestXMLHttpRequestのインスタンスを収集するには?

のすべてのインスタンスを収集するには、私のコードです:

var array = []; 
var orig_XMLHttpRequest = XMLHttpRequest; 
XMLHttpRequest = function() { 
    array.push(this); 
    return new orig_XMLHttpRequest(); 
} 

var ajax_request = new XMLHttpRequest(); 

しかしので "()新しいorig_XMLHttpRequestを返します。"

配列[0]は私が実際に(ajax_request)したくないので、配列[0]は空のオブジェクトだと思いますか?

すべてのインスタンスを取得する方法はあります.....

を私はXMLHttpRequestを上書きされますし、それが「新しい」キーワードを使用して、返すことがあるので、私は正しいを得ることができない「この」のでXMLHttpRequestの?あなたの配列に作成されたインスタンスをプッシュする必要があり

おかげ

+0

これは、XYの問題である可能性があります。インスタンスを収集する理由は何ですか?あなたは正確に何をしようとしていますか? – charlietfl

+0

インスタンスを取得する場合は、インスタンスを取得してから返すだけです。 – SLaks

答えて

2

var array = []; 
var orig_XMLHttpRequest = XMLHttpRequest; 
XMLHttpRequest = function() { 
    var xhr = new orig_XMLHttpRequest(); 
    array.push(xhr); 
    return xhr; 
} 

var ajax_request = new XMLHttpRequest(); 
+0

うわー、それは動作します!ありがとう!! xhrがajax_requestになる理由を説明できますか?私は理解していません.... – chenyuxian

+0

私はそれが何であるか理解できません*あなたが理解していないことを理解できません – Amit

+0

私は初心者です、多くの概念は非常に明確ではない... xhrを返してからajax_requestに代入すると、ajax_requestはxhrを指しているのですか? – chenyuxian