如何获取函数javascript的返回值

时间:2019-06-07 21:29:25

标签: javascript function xmlhttprequest return

我正在尝试编写自己的Xhr包装器作为练习。我正在跨浏览器工作,我遇到了这段代码,该代码为所有浏览器IE5.5 +初始化一个xhr对象

但是我个人并不真正了解现在如何使用此实例化的xhr对象。

请参见下面的代码:

(function () {
    try {
        return new(this.XMLHttpRequest || ActiveXObject)('MSXML2.XMLHTTP.3.0');
    } catch (e) {}
})();

有人可以向我解释如何使用实例化的xhr对象吗?
也许是出于我自己的学习经验,(function (){})();的工作原理

如果不清楚,请告诉我,以便澄清!

1 个答案:

答案 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的内容。