2017-04-02 10 views
-1

我有一個JavaScript模塊,其看起來像這樣:的Javascript從模塊到

var myModule = { 

    settings: { 
     myage: 25 
    }, 

    init: function() { 

     //init code here 

    }, 

    someFunction1: function(param1) { 

     //function code here 

    }, 

    someFunction2: function() { 

     myModule.someFunction1(myparam); 

    } 

} 

我喜歡模塊的結構,因爲它可以保持相關功能一起。

My question is... 
  1. 它是壞的編碼習慣使用的模塊,而不是階級?
  2. 如何將上面的代碼轉換爲類?會非常困難嗎?

回答

2

是不好的編碼習慣使用模塊而不是類?

不!

至少如果你的模塊是不可變的。如果你正在動態修改它,你基本上已經引入了全局狀態,並且是一個不好的做法。此外,我不確定這些「設置」是否應該是全局的 - 如果有任何原因(並且僅用於測試)具有不同設置的多個模塊實例,那麼class將是適當的。

如何將上面的代碼轉換爲類?會非常困難嗎?

不要當你不需要。但是,沒有,它不會很辛苦:

class MyModule { 
    constructor() { 
     this.settings: { 
      myage: 25 
     }; 
     //init code here 
    } 
    someFunction1(param1) { 
     //function code here 
    } 
    someFunction2() { 
     this.someFunction1(myparam); 
    } 
} 

而不是做myModule.init()的,你會打電話var myModule = new MyModule();