因此,为了澄清这个问题,我了解 IIFE 和对象文字是什么。但是,我不确定这两个示例之间的区别是什么(除了一个是函数,另一个是对象文字):
示例 1:
(function(){
var myStuff = {
arbitraryValue: 42
}
return myStuff.arbitraryValue;
})();
示例 2:
(function(){
var myStuff = function() {
return {
arbitraryValue: 42
};
}
return myStuff().arbitraryValue;
})();
两个示例都返回相同的结果,并且(几乎)以相同的方式调用。但:
1)它们之间的根本区别是什么?
2)使用其中一个有好处吗?
3)我已经看到代码(在第二个示例中)return myStuff.arbitraryValue
与return myStuff().arbitraryValue
. 这怎么可能?
4)如果我只是想避免全局冲突并编写干净的代码,这是否矫枉过正?
5)这些例子中的任何一个都被认为是“最佳实践”,还是有其他选择?
提前谢谢了!