惰性载入函数

 惰性思想:能处理一遍的,不需要再处理第二遍,主要是用来处理浏览器兼容或者其他逻辑问题。

    var util = {
        getXHR: (function () {
            //先把所有出现的可能放到一个数组里
            //遍历这个数据,找到当前浏览器最合适的ajax对象
            //把最合适的那个方法覆盖到getXHR方法上,这样第二次调用getXHR方法就不需要再遍历
            var list = [function () {
                return new XMLHttpRequest();
            }, function () {
                return new ActiveXObject('Microsoft.XMLHTTP');
            }, function () {
                return new ActiveXObject('MsXML2.XMLHTTP');
            }, function () {
                return new ActiveXObject('MsXML3.XMLHTTP');
            }];
            for (var i = 0, len = list.length; i < len; i++) {
                try {
                    return list[i]();
                } catch (e) {
                    continue;
                }
            }
            throw new Error('not supported')
        })()
    };

  创建ajax对象

var xhr = util.getXHR();
console.log(xhr)

  

 

posted @ 2015-12-05 20:31  cataway  阅读(264)  评论(0编辑  收藏  举报