我正在尝试编写自己的Xhr包装器作为练习。我正在跨浏览器工作,我遇到了这段代码,该代码为所有浏览器IE5.5 +初始化一个xhr对象
但是我个人并不真正了解现在如何使用此实例化的xhr对象。
请参见下面的代码:
(function () {
try {
return new(this.XMLHttpRequest || ActiveXObject)('MSXML2.XMLHTTP.3.0');
} catch (e) {}
})();
有人可以向我解释如何使用实例化的xhr对象吗?
也许是出于我自己的学习经验,(function (){})();
的工作原理
如果不清楚,请告诉我,以便澄清!
答案 0 :(得分:2)
您的表达式是IIFE-您定义一个函数并立即调用它。由于您没有将结果分配给任何东西,因此将丢失。所以要么做
var req = (function () {
try {
return new(this.XMLHttpRequest || ActiveXObject)('MSXML2.XMLHTTP.3.0');
} catch (e) {}
})();
或(更具可读性)
function getRequest() {
try {
return new(this.XMLHttpRequest || ActiveXObject)('MSXML2.XMLHTTP.3.0');
} catch (e) {}
}
var req = getRequest()
虽然不确定所有ActiveXObject
的内容。