|
寫一個JS class時,如
[Ctrl+A 全選 注:如需引入外部Js需刷新才能執行]
為了容易理解代碼,以及更好的區分public和private的變量,我通常用set...方法(...為某(些)成員變量)來賦值給類的成員。這些set方法當然就是public的。還有一點就是使代碼能夠更規范一些。
然而問題就出在這里,如果以上代碼不考慮驗證有效性(或者只驗證簡單的有效性),那我們就會多出很多的代碼,試想一個類有20個成員(屬性),那么我們就得加20個set...方法,實在多余,因此,要想辦法來解決這個問題。
回憶在Mozilla中,有__defineSetter__和__defineGetter__的方法來給DOM增加成員,給開發人員帶來很多方便。我們也來仿一個js版的__defineSetter。
簡單的思路:
利用JS動態給對象增加方法(或屬性)
但類中方法不必再添加set...此類方法。
非[a-z]區間的屬性也不再添加set...此類方法。
寫出實現代碼