我正在尝试编写自己的Xhr包装器作为练习。我正在跨浏览器工作,我遇到了这段代码,该代码为所有浏览器IE5.5 +启动了xhr对象
但是我个人并不真正了解如何现在使用此实例化的xhr对象。
请参见下面的代码:
(function () {
try {
return new(this.XMLHttpRequest || ActiveXObject)('MSXML2.XMLHTTP.3.0');
} catch (e) {}
})();
有人可以向我解释如何使用实例化的xhr对象吗?
也许出于我自己的学习经验,这
(function (){})();
的工作原理如果不清楚,请告诉我,以便澄清!
最佳答案
您的表达式是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
内容。