天天看點

ExtJS 設計模式 之一 :單例(singleton)

ExtJS 設計模式 之一 (單例)     Extjs 發展至今,傳承了YUI的偉大精髓, YUI得到了Douglas Crockford(任職于 Yahoo! 的一名 JavaScript 傳道者和架構師,他是全球最有造詣的 JavaScript 語言專家之一,Blog:http://www.crockford.com/) 大師的贊同,而ExtJS也是将YUI的模式腳本程式設計學習使用的淋漓盡緻,并且還給它做了幾套華麗的CSS嫁衣….,   而在ExtJS越發耀眼的同時,我等初學者在使用ExtJs的時候也是暈呼其呼。(好在2.0 推出之後,官方的文檔,像雨後春筍一樣,開始覆寫到方方面面。)     其實,撥開ExtJS華麗的外衣,翻閱其體内精緻的代碼,不難發現一些我們耳熟能詳的設計模式。     在早期1.0,1.1的好多例子中,我們會看到這樣風格的代碼。 var Oo= function(){   var x;   var y;   return{   a:function(){   ...   },   b:function(){   ...   }   } }();     咂一看,不是我們能了解的方式, function(){}(), 是何意?。 //()在這裡,意味着方法已經執行,并且return裡面的已經産生, 這樣可能很難了解,那等同與執行 function oo(){},這樣是否好了解些了? BTW :這裡要引入JavaScript的一個進階概念,“閉包”。(具體内容參考《JavaScript The Definitve Guid,5th Eddion》Section 8.8 –Function Scope and Closures ,也是被Douglas Crockford推薦的為數不多的兩本書籍之一。), 當然不急着去翻,先把我的廢話看完。     好了,看這種使用别扭的使用方式, 而這種方式,在我們的頁面,或者其他類中, 調用Oo的a方法的時候,形式如下 Ext.onReady(Oo.a); 對,正是這樣的一種JS程式設計方式,被Douglas [...]

繼續閱讀