var xhr = new XMLHttpRequest ();
//建立XMLHttpRequest 物件 //引數:無 //返回值:XMLHttpRequest 物件 function createXHR () { var XHR = [ //相容不同瀏覽器和版本得建立函數陣列 function () { return new XMLHttpRequest () }, function () { return new ActiveXObject ("Msxml2.XMLHTTP") }, function () { return new ActiveXObject ("Msxml3.XMLHTTP") }, function () { return new ActiveXObject ("Microsoft.XMLHTTP") } ]; var xhr = null; //嘗試呼叫函數,如果成功則返回XMLHttpRequest物件,否則繼續嘗試 for (var i = 0; i < XHR.length; i ++) { try { xhr = XHR[i](); } catch(e) { continue //如果發生異常,則繼續下一個函數呼叫 } break; //如果成功,則中止迴圈 } return xhr; //返回物件範例 }在上面程式碼中,首先定義一個陣列,收集各種建立 XMLHttpRequest 物件的函數。第 1 個函數是標準用法,其他函數主要針對 IE 瀏覽器的不同版本嘗試建立 ActiveX 物件。然後設定變數 xhr 為 null,表示為空物件。接著遍歷工廠內所有函數並嘗試執行它們,為了避免發生異常,把所有呼叫函數放在 try 中執行,如果發生錯誤,則在 catch 中捕獲異常並執行 continue 命令,返回繼續執行,避免丟擲異常。如果建立成功,則中止迴圈,返回 XMLHttpRequest 物件。