2013-01-15 132 views
0

可能重复:
What does the exclamation mark do before the function?!字符前自调用匿名函数

我,刚才已经碰到一个tablesorter插件,并且在注视源,我发现插件设置与自我调用匿名函数 - 没有什么不寻常的。然而,我不知道是什么导致!字符的目的:

!(function($) {})(jQuery); 

我的意思是,它是如何与此不同:

(function($) {})(jQuery); 
+1

Duplicates:http://stackoverflow.com/questions/8305915/function-vs-function http://stackoverflow.com/questions/9475110/not-self-invoking-anonymous-functions?rq=1 – Kos

+0

@sachleen - 有趣的相关问题。但似乎插件作者误解了这种技术...... –

回答

2

对于所有意图和目的,它不根本不同。它否定了函数调用的返回,但由于返回值没有分配给任何东西,所以它没有意义。

+0

当代码通过缩小器与另一个代码串联时,它会产生变化 – Kos

+1

@Kos:是的,但缩小器不会将该函数放在大括号中。 OP给出的例子与'!'将用于保存一个可测字节的场景不同。 –