将生命周期的公共成员赋值给变量与返回对象之间的区别是什么?

What is the difference between assigning an IIFE's public members to a variable vs returning an object

本文关键字:对象 返回 之间 区别 是什么 变量 周期 生命 赋值 成员      更新时间:2023-09-26

我最近看了很多JavaScript代码,我看到了两种不同的方式来使用IIFE的"公共"属性分配。

第一种方法是创建一个变量,并将该变量赋值给IIFE中的一个属性,如下所示:

var public1;
(function(){
    var foo= "Foo", bar= "Bar";
    public1= {
        getFoo: function(){
            return foo;
        }
    };
}());

我看到的第二种方法是从IIFE返回一个对象,如下所示:

var public2 = (function(){
    var foo2= "Foo2", bar2= "Bar2";
    return {
        getBar: function(){
            return bar2;
        }
    };
}());

这两种方式之间有根本的区别吗?还是只是偏好的问题?我还创建了一个小提琴,以便您可以运行或更新代码,如果你喜欢:http://jsfiddle.net/bittersweetryan/gnh79/3/

没有区别。

但是我认为第二个更容易维护。当您在第一个示例中更改变量名时,您也必须在函数中更改它。