Sum*_*ai8 3 javascript jquery self-invoking-function
我注意到在某些地方,jQuery代码包含在一个自动调用函数中,如下所示.为什么这样做,在什么情况下这是有用的,在什么情况下是不必要的样板?
function( $ ) {
...
}( jQuery );
Run Code Online (Sandbox Code Playgroud)
简短的回答:防止变量名称冲突.并不总是需要,而是为了创建无冲突的可重用代码的良好实践.
答案很长:在javascript中,$符号只是另一个变量.jQuery使用它,因为它是一个很好的速记,而不是每次都要输出jQuery,但任何其他代码(包括其他库)也是如此.
为了防止与同一范围内的变量的其他使用冲突(在本例中为"全局"范围内的$),通常将代码包装在自调用函数中,并将"无冲突"变量作为传递功能参数.然后,这会创建一个新范围,您的变量不会干扰该变量的其他用途.这样你就可以传递完整的命名变量,并在匿名函数中使用你想要的任何名称.
因此,在创建无冲突的可重用代码时,最好使用此方法:
(function( $ ) {
...
})( jQuery );
Run Code Online (Sandbox Code Playgroud)
沿着这些方向,您还将看到以下格式:
(function( $, window, undefined ) {
...
})( jQuery, window );
Run Code Online (Sandbox Code Playgroud)
在这个实例undefined中,仅用于可读性,以指示不再向函数传递参数.
| 归档时间: |
|
| 查看次数: |
10927 次 |
| 最近记录: |