如何寫出漂亮的js代碼

javascript代碼和其他腳本語言一樣,都要合理的組織好,不然到最後js代碼也是比較亂的。 

我把JS的組織分成了三個階段,看看您現在屬於哪個階段。 

初級階段:JS代碼從頭順序寫到尾,過程化 

<html> 
  <body> 
    <input type="text" name="username" id="username" value="" /> 
    <input type="password" name="password" id="password" value="" /> 
  </body>
  <script type="text/javascript"> 
    if(document.getElementById("username").value == ""){ 
      alert("用戶名不能爲空"); 
    } 
    if(document.getElementById("password").value == ""){ 
      alert("密碼不能爲空"); 
    } 
  </script>  
</html> 

缺點:像這樣的代碼都是寫一個頁面裏面的,代碼基本不能共用,最後的結果js代碼冗餘比較多。 

優點:單個頁面修改比較快,不用考慮影響其他頁面。不用加載JS文件。 

中級階段:通過JS的function來,組織js代碼 

在開發的過程中,不斷的發現,順序寫JS代碼,有太多的麻煩,到最後可能就無法維護,要麼維護的時間的太長。在重新開發時,

有意識的對代碼進行分塊,注意代碼的共用性,這個時候function寫的比較多。 

<script type="text/javascript"> 
  function check_username() { 
    if(document.getElementById("username").value == ""){ 
      alert("用戶名不能爲空"); 
    } 
  } 
  function check_password() { 
    if(document.getElementById("password").value == ""){ 
      alert("密碼不能爲空"); 
    } 
  } 
</script> 

優點:對JS代碼,進行分塊,共用性較好,修改一處所有調用都可以修改掉,並且代碼可讀性加強。 

缺點:需要加載JS文件,如果function過多,導致找一個function要花很多時間。 

高級階段:通過方法類,域等對function進行分割 

當一個JS文件裏面有100多個方法的時候,這個時候看代碼其實挺難過的,如果能把裏面的function進行分分類是不是就清楚很多,

好比,這幾個方法是註冊時check用的,這個幾是對字符串的驗證用的等等。 

<script type="text/javascript"> 
  function register(){ 
    this.check_username = function(){ 
      if(document.getElementById("username").value == ""){ 
        alert("用戶名不能爲空"); 
      } 
    } 
    this.check_password = function(){ 
      if(document.getElementById("password").value == ""){ 
        alert("用戶名不能爲空"); 
      } 
    } 
  } 
  new register().check_username(); //調用方法 
</script> 

上面的這種用的是方法類,大方法是register,裏面定義的二個小方法,一個是對用戶名的check,一個是對密碼的check.

<script type="text/javascript"> 
  var register = { 
    check_username:function(){ 
      if(document.getElementById("username").value == ""){ 
        alert("用戶名不能爲空"); 
      } 
    }, 
    check_password:function(){ 
      if(document.getElementById("password").value == ""){ 
        alert("用戶名不能爲空"); 
      } 
    } 
  } 
  register.check_username(); //調用方法 
</script> 


個人覺得通過域,來對function進行管理,規劃最簡單明瞭。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章