我已经看到了编写自调用函数的下一种方法:
(function (app) {
app.foo = {
bar: function(){}
};
}(App));
App
全局对象在哪里。
我想知道,为什么我们需要将App
参数作为参数传递给函数?为什么不直接使用这个:
(function () {
App.foo = {
bar: function(){}
};
}());
我只看到使用第一种方式的一个优势。如果我们出于某种原因重命名App
对象,那么我们可以轻松地重命名括号中的参数,我们的代码将正常工作。但是在第二种方式的情况下,我们可能需要App
在我们使用它的所有地方重命名。
还有其他区别吗?