初学EXT的心得收录
一開始我們些略過JavaScript兩種建立物件的方法,我先把大概介紹一下,但是這篇文章不會談論到這個部分。方法一是:
var MyObject = function(){/*Your Code Here*/};方法二是:var MyObject = function(){return{/*Your Code Here*/}}();
好,今天我們介紹的Application Layout是許多Javascript設計師常用的架構,當然每個人都又自己的偏好。不過我觀察到一個趨勢,今天介紹的架構是最受許多人歡迎的。
MyObject = function() {// private variables : 私有屬性或稱為區域變數 // private functions : 私有方法或稱為區域方法 // public space return { // public properties, e.g. strings to translate : 公有屬性或稱為公開變數 // public methods : 公有方法或稱為公開方法 init: function() { alert('Application successfully initialized'); } };}(); //
上面一堆提到一堆公有/私有,公開/區域..等名詞都是翻譯的問題。我個人還是比較喜歡用英文來稱呼。
上面的架構已經把private 與public 的位置規劃出來了,所以如果把程式碼都放到正確的位置上,大致的架構應該如下
MyObject = function() {var myFirstName='Jack';var myLastName='Slocum'; //sorry jack : ) function getFirstName(){alert(myFirstName);}function getLastName(){alert(myLastName);} return {NickName1: 'Super Jack',NickName2: 'Good Futher Jack', init: function() { alert(this.NickName1); //在Public zone裡面的需要使用this.xxxx來存取變數alert(myFirstName); //在Public zone裡面的直接使用 xxx來存取private zone裡面的變數 },other : function(){alert(this.NickName2); //在Public zone裡面的需要使用this.xxxx來存取變數alert(myLastName); //在Public zone裡面的直接使用 xxx來存取private zone裡面的變數}//注意結尾的,需要去除不然龜毛的IE會拒絕執行 };}(); //
有幾點重點要提供給新手注意,這也是我剛學習Javascipt會遇到的疑惑與困擾。
第一個是變數的宣告方式:
在Private zone的變數使用分號(;)隔開舉例如下:
var 變數1;
var 變數2;
但是在Public zone裡面的變數要使用逗號(,)隔開(註:其實這是JSON寫法的變型)舉例如下:
變數1:變數1的值,
變數2:變數2的值//注意結尾的逗點在IE無法通過檢查
第二個是function(或稱方法)的宣告方式:
在Private zone的使用方法如下:
function fun1(){/*Your code HERE*/ }; function fun2(){/*Your code HERE*/ }; 在但是在Public zone的使用方法如下,(註:還這是JSON寫法的變型): fun1: function() { /*Your code HERE*/},fun2: function() { /*Your code HERE*/}
页:
[1]