天天看點

javascript中如何讓類工廠和構造函數變成同一個函數

我們知道在js中可以用一個函數來定義對象的類,該函數稱之為對象的構造函數,我們在需要create對象的時候直接調用這個構造函數即可:

如上所示man對象的類是man,因為有:

但是我們同樣可以寫一個類的工廠方法,用它來生成一個對象,顯然該工廠方法不能用new來調用:

以上2個方法分開來寫略顯繁瑣,那麼有沒有可能把以上2個方法合成一個方法呢?那是必須的 :)

以下代碼将man和man_f方法合并成一個man方法,利用了這樣一個事實:在使用new調用的構造器中this指向該類的一個執行個體:

繼續閱讀