這種模式的目的是什麼?JavaScript名稱空間模式(類似於對象的屬性)
var ns=function(){
//do some stuff
}
ns.test=function(){
//do another stuff
}
我看到類似的代碼,但我不明白這種模式的優點。
也似乎這是類似物體的屬性。
此模式也有一些時間用於閉包,似乎jquery使用它,但不確定。
謝謝!
這種模式的目的是什麼?JavaScript名稱空間模式(類似於對象的屬性)
var ns=function(){
//do some stuff
}
ns.test=function(){
//do another stuff
}
我看到類似的代碼,但我不明白這種模式的優點。
也似乎這是類似物體的屬性。
此模式也有一些時間用於閉包,似乎jquery使用它,但不確定。
謝謝!
首先,它可以確保您的變量和函數名稱不與可能包含的其他腳本(如廣告,分析,不包含命名空間的庫)的名稱衝突。
出現這種模式是因爲在JavaScript中,函數是擁有自己的屬性和方法的第一類對象。這允許函數自己執行,但也模仿其他語言的東西。這允許你做一些非常強大的事情,比如模仿靜態類,記憶,命名空間等等。
所以這兩個函數在技術上不是相對的? – excanoe 2011-04-25 17:05:32
好吧,它的工作方式是ns是一個函數(和一個對象,因爲函數是Javascript中的第一類),它關閉了其他屬性,如ns.test,它也恰好是一個函數。所以函數測試屬於ns對象。 – Jay 2011-04-25 17:19:00