Try.theseメソッド

【抜粋】
var Try = {
  these: function() {
    var returnValue;

    for (var i = 0; i < arguments.length; i++) {
      var lambda = arguments[i];
      try {
        returnValue = lambda();
        break;
      } catch (e) {}
    }

    return returnValue;
  }
}

Tryオブジェクトにtheseメソッドが一つだけです。複数の関数を引数として指定すると、成功するまで実行を繰り返し、成功した関数の戻り値を返却します。

returnValue = lambda();でエラーが発生すると、breakせずにcatch節へ飛び、実行が繰り返されることになります。

例として、後述Ajax.getTransportをあげます。

【参考】
  getTransport: function() {
    return Try.these(
      function() {return new ActiveXObject('Msxml2.XMLHTTP')},
      function() {return new ActiveXObject('Microsoft.XMLHTTP')},
      function() {return new XMLHttpRequest()}
    ) || false;
  },

3つある関数のうち、一つめはIE6以降のみ成功し、他はエラーになります。この場合二つめが実行されますが、これはIE4〜5.5までが成功し、他がエラーとなります。最後に三つめが実行されます。一部のブラウザではこれもエラーになり、返却値はundefinedです。この場合はfalseが返却されるようになっています。