Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/450.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
我正在用Javascript玩不同的设计模式。这家工厂把我搞糊涂了_Javascript_Factory_Self Reference - Fatal编程技术网

我正在用Javascript玩不同的设计模式。这家工厂把我搞糊涂了

我正在用Javascript玩不同的设计模式。这家工厂把我搞糊涂了,javascript,factory,self-reference,Javascript,Factory,Self Reference,我正在玩不同的JS设计模式,我试图修改一些我在那里看到的示例。我看到了一个xhr工厂的示例,它有几个嵌套的try/catch语句,它们相互嵌套 try{ ... }catch(e){ try{ ... }catch(e){} } 我想我可以做一个自调用函数。然而,我似乎不知道它应该如何工作。有人有什么建议吗 例如: [更新]: 案例关闭。将尝试循环更改为: for(var i = 0, l = instances.length; i < l; i ++) {

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

try{
...
}catch(e){
    try{
    ...
    }catch(e){}
}
我想我可以做一个自调用函数。然而,我似乎不知道它应该如何工作。有人有什么建议吗

例如:

[更新]: 案例关闭。

将尝试循环更改为:

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

不太确定这里的问题是什么?我尝试了这个示例,但没有看到问题是什么?该示例返回一个错误XHR未定义。我的循环在1次尝试时停止。哦,我没想到会发生这种事。我得到了一个xmlhttprequest对象。
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");
    })();
})();