var Try = { these: function() { var returnValue; for (var i = 0, length = arguments.length; i < length; i++) { var lambda = arguments[i]; try { returnValue = lambda(); break; } catch (e) { } } return returnValue; } };
XML の HTTP 通信を行う為のオブジェクトを取得する為のメソッドとしてしか使用していないようなのですが、使い方としては引数に無名関数を並べて、その中でオブジェクトを新規作成するコードを書いて return させています。その結果、最初に存在するオブジェクトを返すという処理になります。 実際は以下のように使われています
var Ajax = { getTransport: function() { return Try.these( function() {return new XMLHttpRequest()}, function() {return new ActiveXObject('Msxml2.XMLHTTP')}, function() {return new ActiveXObject('Microsoft.XMLHTTP')} ) || false; }, activeRequestCount: 0 };
一つ目は、Mozilla 系のブラウザ用で、二つ目が IE 用。三つ目は相当古い Windpos 用でほぼ使われないはずです。ですから、自分で XML の HTTP 通信のオブジェクトを取得したい場合は、IE かそうでないかで普通に取得すればいいと思います