惰性载入函数

对于每次判断条件都相同的多次调用函数,例如检测浏览器是否支持某方法,可以通过惰性载入函数减少if判断次数,提高性能。

function createXHR() {
  if (typeof XMLHttpRequest != "undefined") {
    createXHR = function () {
      return new XMLHttpRequest();
    };
  } else if (typeof ActiveXObject != "undefined") {
    createXHR = function () {
      if (typeof arguments.callee.activeXString != "string") {
        var versions = ["MSXML2.XMLHttp.6.0", "MSXML2.XMLHttp.3.0", "MSXML2.XMLHttp"], i, len;
        for (i = 0, len = versions.length; i < len; i++) {
          try {
            new ActiveXObject(versions[i]);
            arguments.callee.activeXString = versions[i];
            break;
          } catch (ex) {
          }
        }
        return new ActiveXObject(arguments.callee.activeXString);
      };
    }
  } else {
    createXHR = function () {
      throw new Error("No XHR object available.");
    };
  }
  return createXHR();
}

  

猜你喜欢

转载自www.cnblogs.com/hanxiaoer/p/11586807.html
今日推荐