两个自调用函数之间的JavaScript差异?

两个自调用函数之间的JavaScript差异?,javascript,ecmascript-6,Javascript,Ecmascript 6,JavaScript中自调用函数的方法有什么不同 第一种变体: window.identityServer = (function () { const identityServer = { getModel () { const model = JSON.parse(Encoder.htmlDecode(encodedJson)) return model }, } return ide

JavaScript中自调用函数的方法有什么不同

第一种变体:

window.identityServer = (function () {
    const identityServer = {
        getModel () {
            const model = JSON.parse(Encoder.htmlDecode(encodedJson))

            return model
        },
    }

    return identityServer
})()
第二种变体:

(function () {
    const identityServer = {
        getModel () {
            const model = JSON.parse(Encoder.htmlDecode(encodedJson))

            return model
        },
    }

    return identityServer
})(window.identityServer)

第一个函数将
window.identityServer
设置为在函数中创建的对象


第二个没有。它将
window.identityServer
作为参数传递,不使用它,也不处理返回值。最后它什么也不做。

对于第二个变体,您将
window.identityServer
作为参数传递到IIFE@Isaac是的,但是函数不接受任何参数,所以看起来有点毫无意义。这两个函数都不是自调用的。它们都是内联调用的,但它们不是递归的。@Isaac如果我像这样添加参数`(函数(identityServer){`difference?@CertainPerformance-这完全没有意义