0

私はさまざまな JS デザイン パターンをいじっており、見たいくつかのサンプルを変更しようとしています。互いにネストされたいくつかのネストされた try/catch ステートメントを持つ xhr ファクトリの例を見ました。

try{
...
}catch(e){
    try{
    ...
    }catch(e){}
}

自己呼び出し機能を実行できると思いました。しかし、それがどのように機能するかについては、私を逃したようです。誰かアドバイスはありますか?

例:
http://jsfiddle.net/jiggliemon/a7xWq/2/


[更新] :
http://jsfiddle.net/jiggliemon/b5LaZ/embedded/
ケースクローズ。

4

2 に答える 2

0

try ループを次のように変更しました。

for(var i = 0, l = instances.length; i < l; i ++) {
    try{
        var obj = instances[i].getInstance();
        return instances[i];
    }catch(e){ }
}

完全なコード

于 2010-07-28T07:52:51.903 に答える
0
var XHR = (function(){
    var ins = [
        function(){return new XMLHttpRequest();},
        function(){return new ActiveXObject('Msxml2.XMLHTTP');},
        function(){return new ActiveXObject('Microsoft.XMLHTTP');}
    ],i,tmp;

    return (function tryIns(i){
        i = i || 0;
        while(i < ins.length){
            try{tmp = ins[i]();}
            catch(e){i++; tryIns(i);}
            finally{return ins[i];}
        }
        throw new Error("Your browser doesn\'t support Ajax requests");
    })();
})();
于 2010-07-30T06:42:48.047 に答える