在 JavaScript 中使用 (function(){...})() 有什么好处
我注意到在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 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(5)
它创建一个闭包以防止与代码其他部分发生冲突。请参阅此:
特别方便,如果您有一些其他库使用
$()
方法,并且您还必须保留将其与 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:它创建变量的范围,特别是定义
$
例如绑定到jQuery
,无论其他库覆盖它。将其视为匿名名称空间。It creates a scope for variables, in particular defining
$
for example to bind tojQuery
, no matter what other libraries overwrite it. Think of it as an anonymous namespace.通过自调用匿名函数,您可以创建一个本地作用域,它非常高效,并且可以直接调用自身。
您可以阅读有关它这里
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
就像:
但更简单,不需要全局变量。
It's just like:
But more simple and do not need a global variable.
它允许在函数内部拥有局部变量和操作,而不必将它们转换为全局变量和操作。
It allows to have local variables and operations inside of the function, instead of having to transform them to global ones.