可能重复:
What does the exclamation mark do before the function?!字符前自调用匿名函数
我,刚才已经碰到一个tablesorter插件,并且在注视源,我发现插件设置与自我调用匿名函数 - 没有什么不寻常的。然而,我不知道是什么导致!
字符的目的:
!(function($) {})(jQuery);
我的意思是,它是如何与此不同:
(function($) {})(jQuery);
可能重复:
What does the exclamation mark do before the function?!字符前自调用匿名函数
我,刚才已经碰到一个tablesorter插件,并且在注视源,我发现插件设置与自我调用匿名函数 - 没有什么不寻常的。然而,我不知道是什么导致!
字符的目的:
!(function($) {})(jQuery);
我的意思是,它是如何与此不同:
(function($) {})(jQuery);
对于所有意图和目的,它不根本不同。它否定了函数调用的返回,但由于返回值没有分配给任何东西,所以它没有意义。
当代码通过缩小器与另一个代码串联时,它会产生变化 – Kos
@Kos:是的,但缩小器不会将该函数放在大括号中。 OP给出的例子与'!'将用于保存一个可测字节的场景不同。 –
Duplicates:http://stackoverflow.com/questions/8305915/function-vs-function http://stackoverflow.com/questions/9475110/not-self-invoking-anonymous-functions?rq=1 – Kos
@sachleen - 有趣的相关问题。但似乎插件作者误解了这种技术...... –