網易郵箱前端Javascript編碼規範:類規範

發表於2012-05-11

來源:網易郵箱

上一篇文章介紹了網易郵箱前端Javascript編碼規範的第一部分,關於變數和函式的編碼規範,本篇文章將繼續介紹網易郵箱制定的javascript類編碼規範。

網易郵箱頁面在window只允許定義三種變數——1:全域性變數;2:常量;3:類。任何業務邏輯都需要通過類方法或者示例方法實現。前兩種變數在之前文章中已經介紹,在此不再累述,接下來詳細介紹類定義和使用的規範。

定義類是通過一個閉包完成的:

 

我們可以看到,這個閉包完成了以下幾件事情:

1.引入這個類需要用到的其他類。

2.定義這個類。

3.定義類的屬性和方法。

4.定義類的例項屬性和方法。

5.類和例項方法的實現。

在命名上,我們遵循了一下規則:

1.類名首個字母必需大寫,例如Image,Support等。

2.屬性名需要是有意義的名詞,首字母小寫,例如oImage.width。

3.方法名需要是有意義的動詞[+名詞],首字母小寫,例如Support.getWidth

4.如果不希望被其他方法呼叫,需要在屬性或者方法名前面加“_”,例如oImage._language

5.如果不希望被子類呼叫,需要在屬性或者方法名前加“_”,例如oImage.__fire()

 

這裡需要特別說明以下幾點:

1.方法的定義不是通過匿名函式來定義,而是集中在類定義的下面來實現。這樣的好處是能在最開始將類的屬性方法定義都羅列出來,便於通過原始碼檢視到對應屬性和方法。

2.在類/例項方法中,使用區域性變數代替this。this不是一個好的玩意兒,一不小心就會被this搞暈。使用區域性變數能夠儘量避免這樣的問題,也能夠在壓縮混淆的時候效果更好。

3.在實際開發過程中,每個類定義都單獨一個js實現。

除了類的定義,閉包不實現 任何其他邏輯。使用閉包能夠將很多變數約束在閉包作用域中,並且能夠在壓縮混淆中效果更好,除此之外,使用閉包定義類,在之後將介紹到的動態載入成為了一件十分容易的事情,稍後會和大家一起分享。

 

相關文章