`
Jabbar2011
  • 浏览: 164187 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

Prototype源码学习之trycatch妙用

阅读更多
还记得看原生态ajax的时候,需要根据浏览器的类型判断用XMLHttpRequest对象还是ActiveXobject对象。
  仔细研究了上面的代码,终于发现这样写的妙处了,大家认为呢?

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;
  }
};

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
};

 
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics