JS設計模式學習筆記一:對象收編變量 檢測類

1.1函數基本形式(全局變量)

     function checkName(){    //驗證姓名
    } 
     function checkEmail(){  //驗證郵箱
    }
     function checkPassword(){ //驗證密碼
    }

1.2函數的另一種形式 (全局變量)

   var checkName =function(){   //驗證姓名
   }
   var checkEmail = function(){  //驗證郵箱
   }
   var checkPassword=function(){ //驗證密碼
   } 

上面聲明瞭多個函數也就是多個全局變量,當多人協作時,如果別人也定義了同樣的方法或者自己定義了很多方法,就容易存在被覆蓋的風險,且這種相互覆蓋的問題是不容易察覺的。所以可以將它們放在一個變量裏保存,這樣就可以減少覆蓋或被覆蓋的風險,當然一旦被覆蓋所有的功能都會失效,但這種現象很明顯也容易察覺。

1.3 用對象收編變量:
可以創建一個檢測對象,然後把函數方法放在裏面:

   var CheckObject={
     checkName: function(){  //驗證姓名
     },
     checkEmail:function(){  //驗證郵箱
     },
     checkPassword:function(){ //驗證密碼
     }
}  

這裏我們將所有函數作爲CheckObject 對象的方法,這樣我們就只有一個對象,而我們要想使用它們也很簡單,比如檢測姓名CheckObejct.checkName(),只是在我們原來使用的函數式前面多了個對象名稱。

1.4 對象的另一種形式:
在JS中函數也是一種對象,所以可以有如下寫法:

 var CheckObject = function(){};
 CheckObject.checkName = function(){
    //驗證姓名
}
 CheckObject.checkEmail = function(){
   //驗證郵箱
}
 CheckObject.checkPassword=function(){
  //驗證密碼
} 

使用和前面的方式是一樣的,比如CheckObject.checkName(),但這個對象類在用new 關鍵字創建新的對象時,新創建的對象是不能繼承這些方法的。

1.5 真假對象
如果想簡單得複製對象,可以將這些方法放在一個函數對象中:

  var CheckObject = function(){
  return {
     checkName:function(){
     //驗證姓名
     },
     checkEmail:function(){
     //驗證郵箱
     },
     checkPassword:function(){
      //驗證密碼
     }
   }
}

var a = CheckObject();
a.checkEmail();

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章