2012-06-14 81 views
2

我知道模塊模式在Javascript編程中非常有用且功能強大。 我第一次認識到Eric Miraglia's blog的模式,但我想知道一件事。 在其他解釋模塊模式的博客和文章中,我注意到他們的示例代碼與Eric的文章略有不同,也就是說,他們使用括號而不是函數語句的函數表達式,例如,the article from ben cherry就是其中之一。模塊模式中函數表達式的主要用途

是否有任何具體原因使用函數表達式而不是函數聲明? 請用簡單的方法解釋,我剛剛進入了JavaScript編程世界:)

回答

2

Miraglia模式是相同的,定義一個匿名函數並執行它。區別在於,爲了使用該模塊的功能,您必須在某處引用某個實例。將模塊分配給全局變量(YAHOO。*)是一種將參考保留在全局已知位置的方法,對於框架(如YUI)尤其重要。

有時你不需要那個參考。例如,如果您正在爲網頁編寫JavaScript,則通常使用選擇器(ids/types等)將事件綁定到函數。這實際上不需要對模塊函數進行全局引用。

希望有道理......

+0

感謝您的回覆史蒂夫,我想我的問題有點短暫來形容我的想法,讓我們再簡單地問一個問題。以下兩個代碼有什麼區別?首先,var b =(function(){doSomething ...}());其次,var b = function(){doSomething ...}();只要我知道,第一個是函數表達式,第二個是函數聲明。在Eric的文章中,他使用第二種方式,在大多數其他文章中,他們使用第一種方式。 – Ray

+0

表達式是相同的。第一個只有一對額外的括號,這是多餘的。 –

相關問題