gpt4 book ai didi

javascript - 自调用函数和参数?

转载 作者:搜寻专家 更新时间:2023-11-01 04:52:28 24 4
gpt4 key购买 nike

我已经看到了下一种编写自调用函数的方法:

(function (app) {
app.foo = {
bar: function(){}
};
}(App));

其中 App 是一个全局对象。

我想知道,为什么我们需要将 App 作为参数传递给函数?为什么不只使用这个:

(function () {
App.foo = {
bar: function(){}
};
}());

我只看到使用第一种方式的一个优势。如果我们出于某种原因重命名 App 对象,那么我们可以轻松地重命名括号中的参数,我们的代码将按原样运行。但是如果是第二种方式,我们可能需要在我们使用它的所有地方重命名 App

还有其他区别吗?

最佳答案

这意味着函数的内容——关于 app 标识符——对于全局(或父)范围是不可知的。

例如,当您不想假设 jQuery 对象被称为 $ 时(例如,如果无冲突模式是on),但你确实想用那个名字来调用它。通过像这样的匿名函数(即 (function($) {})(jQuery))传递它允许您生成一个本地范围的别名,不会干扰名称的外部含义$ 在父级/全局范围内。

关于javascript - 自调用函数和参数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14400210/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com