2013-04-25 50 views
-2

有一個「!」功能之前,爲什麼?

http://twitter.github.io/bootstrap/assets/js/bootstrap-transition.js

! function($) { 

    //...... 

}(window.jQuery); 
+0

強制函數是一個表達,其中結束'(window.jQuery)'然後調用它。 – Joseph 2013-04-25 01:45:35

+1

也是:http://stackoverflow.com/questions/3755606/what-does-the-exclamation-mark-do-before-the-function – tptcat 2013-04-25 01:45:44

+0

只是一個視覺線索來告訴這是一個IIFE,也可以是'〜'或'+'。除非函數返回某個變量,否則無關緊要。最常見的做法是將整個表達式放在括號中。 – elclanrs 2013-04-25 01:47:16

回答

0

!導致函數被視爲表達,這意味着它具有與此相同的效果:

(function($) { 

    //...... 

})(window.jQuery); 
+1

嗯,不是很完美:p如果你想返回一個值,那麼'(...)()'比''好得多!' – 2013-04-25 01:46:21

+0

它實際上並不會導致它被評估......這是由最後括號。這只是一種表明它立即被調用的方式。這是爲了更好的可讀性(與整個函數的括號相同) – 2013-04-25 01:48:06