2013-01-15 48 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給出的例子與'!'將用於保存一個可測字節的場景不同。 –