JavaScript設計模式學習之路——面向對象的思想

今天,我拿到了張容銘寫的這本《JavaScript設計模式》這本書,開始了關於JavaScript更深一點的學習。編程

看到這本書開始的時候,雖然以前經過看書、一些比較好的視頻的講解,對JavaScript有了基礎的認識,可是,在看到書的內容的時候,我心裏仍是有一種本身差的十萬八千里的感受,以前的代碼寫法不行,使用全局變量、全局函數,只是面向過程的編程的方法,擴展性、可重用性過低。之後我將天天更新博客,將本身所學每一種設計模式都po出來,我要本身看到本身的進步!!加油!json

今天的內容是————面向對象的思想設計模式

主要感想:應該擯棄以前面向過程的思想和代碼寫法,儘可能減小全局變量、全局函數的使用。結合我今天看的另一本《高性能JavaScript》,針對js性能方面來講,全局變量以及DOM中的變量所在的做用域鏈的位置均在局部變量的所在位置的下方,也就是搜索順序,先找的是局部變量,後來找的纔是全局變量。所以,爲了性能的需求、團隊的合做和代碼的重用性,都應該採用面向對象的思想。函數

案例:檢查姓名、郵箱、密碼是否符合規範,詳細的檢查函數省略。性能

方法一:學習

 1     //將所要添加的方法包裝與object中
 2     //方法1.使用json式的方法封裝函數,缺點:沒有使用new,擴展性不強
 3     var CheckObject = {
 4         checkName : function(){
 5             //檢查姓名
 6             alert("checkName");
 7             return this;//爲鏈式調用
 8         },
 9         checkEmail : function(){
10             //檢查Email是否合法
11             alert("checkEmail");
12             return this;//爲鏈式調用
13         },
14         checkPassword : function(){
15             //檢查密碼
16             alert("checkPassword");
17             return this;//爲鏈式調用
18         }
19     };
20 
21     方法一調用
22     CheckObject.checkName().checkEmail().checkPassword();

方法二:this

我以爲較爲好的一種方法,結合我本身類式調用的習慣,在Function的prototype中添加方法,避免對原生對象Function的污染,建立一個統一的方法爲其添加方法,在其添加方法時,爲使用類式調用,使其添加的方法在其原型中。spa

 1 Function.prototype.addMethods = function(name,fn){
 2         this.prototype[name] = fn;
 3         return this;
 4     }
 5     var Methods = function(){};
 6     // var Methods = new Function();
 7     Methods.addMethods('checkName',function(){
 8         //檢查姓名
 9         alert("checkName");
10 
11     }).addMethods('checkEmail',function(){
12         //檢查Email是否合法
13         alert("checkEmail");
14 
15     }).addMethods('checkPassword',function(){
16         //檢查密碼
17         alert("checkPassword");
18 
19     });
20 
21     //方法二調用時
22     var m = new Methods();
23     m.checkName();

但願你們有更好的看法隨時reply,若是有誤,請不吝賜教!prototype

相關文章
相關標籤/搜索