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 かそうでないかで普通に取得すればいいと思います
|
【prototype.jsの最新記事】
- prototype.js (1.7.2) : Browser プロパティ
- prototype.js でブラウザの種類を知る為の簡単な拡張。
- prototype.js でクロスドメインの Ajax の読み込みテスト
- prototype.js で使っていたのをさらに短縮した IE かどうかの判断。
- Google の prototype.js を使う
- prototype.js 内の getElementsByName の代わりになるメソッド
- prototype.js : $ 関数
- prototype.js : 1.6.1と1.7_rc2 の evalJSON の違い
- prototype.js の Object.extend でプロパティを追加する
- prototype.js で、$(id) 関数が name 属性のみの場合 IE 以外で使え無いのをとりあえず使えるようにする