0

我正在玩弄不同的 JS 设计模式,并尝试修改我在那里看到的一些示例。我看到了一个 xhr 工厂的例子,它有几个嵌套的 try/catch 语句,它们相互嵌套。

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

我想我可以做一个自我调用的功能。然而,它似乎让我不知道它应该如何工作。有人有建议吗?

示例:http:
//jsfiddle.net/jiggleemon/a7xWq/2/


[更新]: http:
//jsfiddle.net/jiggleemon/b5LaZ/embedded/
案例关闭。

4

2 回答 2

0

将尝试循环更改为:

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 回答