在 JavaScript 中使用 (function(){...})() 有什么好处

发布于 2024-08-21 12:19:06 字数 154 浏览 2 评论 0原文

我注意到在JQuery中使用了以下代码结构

(function(){var l=this,g,y=l.jQuery,p=l.$,...})()

其中似乎创建一个函数并调用它。

与内联函数内容相比,采用这种方法有什么好处?

I noticed in JQuery that the following code structure is used

(function(){var l=this,g,y=l.jQuery,p=l.$,...})()

Which seems to create a function, and call it.

What is the benefit of taking this approach versus having the contents of the function inline?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(5

拥有 2024-08-28 12:19:06

它创建一个闭包以防止与代码其他部分发生冲突。请参阅此:

特别方便,如果您有一些其他库使用 $() 方法,并且您还必须保留将其与 jQuery 一起使用的能力。然后你可以创建一个像这样的闭包:

(function($) {
    // $() is available here
})(jQuery);

It creates a closure to prevent conflicts with other parts of code. See this:

Particularly handy if you have some other library that uses the $() method and you have to retain the ability to use that with jQuery also. Then you can create a closure such as this:

(function($) {
    // $() is available here
})(jQuery);
泪是无色的血 2024-08-28 12:19:06

它创建变量的范围,特别是定义 $ 例如绑定到 jQuery,无论其他库覆盖它。将其视为匿名名称空间。

It creates a scope for variables, in particular defining $ for example to bind to jQuery, no matter what other libraries overwrite it. Think of it as an anonymous namespace.

浪菊怪哟 2024-08-28 12:19:06

通过自调用匿名函数,您可以创建一个本地作用域,它非常高效,并且可以直接调用自身。

您可以阅读有关它这里

With self invoking anonymous function you create a local scope, it's very efficient and it directly calls itself.

You can read about it here

风苍溪 2024-08-28 12:19:06

就像:

var foo = function(){var l=this,g,y=l.jQuery,p=l.$,...};
foo();

但更简单,不需要全局变量。

It's just like:

var foo = function(){var l=this,g,y=l.jQuery,p=l.$,...};
foo();

But more simple and do not need a global variable.

请爱~陌生人 2024-08-28 12:19:06

它允许在函数内部拥有局部变量和操作,而不必将它们转换为全局变量和操作。

It allows to have local variables and operations inside of the function, instead of having to transform them to global ones.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文