关于Javascript:Javascript – 这行是什么意思? !功能($)

Javascript - what does this line mean? !function ( $ )

Javascript:这行是什么意思?

1
!function ( $ )


我敢打赌,稍微更完整的版本看起来像这样:

1
2
3
!function ( $ ) {
   // some code
}(jQuery);

基本上,上面使用!运算符将匿名函数解释为函数表达式,然后可以立即调用它。带走!,你有一个无效的函数声明(或函数声明,取决于你喜欢的术语) - 无效,因为它没有名字。更常见的方法是将它放在括号中:

1
2
3
(function ( $ ) {
   // some code
})(jQuery);

但有些人喜欢使用!而不是括号来保存角色。

您可以使用这样的代码的一个原因是您可以创建一些不会在全局范围内结束的工作变量。或者,从匿名函数中,创建一个在全局范围内但具有可以访问匿名函数范围中的私有变量的方法的对象。

关于$参数,我只是猜测jQuery将作为参数传递给函数,因为这在使用参数name $时很常见。您可能这样做的一个原因是,您可以使用另一个库来定义$,同时使用jQuery,但在此块中使用$进行jQuery。


我想我们错过了一些数据,但我认为这篇文章来自条件语句或三元组中的闭包。

1
2
3
4
5
var test = 'Testing!';
(!function ( $ ) {
   alert($);
   return false;
}(test) ? alert("bad") : alert("good"));

http://jsfiddle.net/MattLo/WpqfN/3/