惰性载入函数
惰性思想:能处理一遍的,不需要再处理第二遍,主要是用来处理浏览器兼容或者其他逻辑问题。
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)