簡體   English   中英

ES6類靜態方法vs函數

[英]ES6 class static method vs function

我正在使用NodeJS並編寫一些實用程序函數。 我想到兩個選擇。

第一個是傳統方法,即

module.exports = {
    random: () => Math.random(),
};

第二種選擇是使用ES6類和靜態方法,例如

class MyMath {
    static random() {
        return Math.random();
    }
}
module.exports = MyMath;

從編程/單元測試的角度哪一個更好? 或者它們幾乎相同,因為ES6類本質上是一個語法糖?

更新:感謝評論的人。 我看到了那些問題類靜態方法與實例方法,或者原型方法與對象方法的問題,但我更像是類靜態方法與對象方法。

在JavaScript中使用僅靜態類作為名稱空間是語言的殘余,其中類是唯一可用的實體。 模塊已經充當命名空間。

如果需要單例對象,則應使用對象文字:

module.exports = {
    random: () => Math.random(),
};

已經有可以使用的exports對象:

exports.random = () => Math.random();

或者使用ES模塊:

export const random = () => Math.random();

使用class語法,您可能提供的內容超出了您的預期,它是一個可以使用new調用的構造函數,而使用對象文字語法可以提供非函數對象。 因為這是你想要公開的,所以去吧。

只有靜態方法的類與一堆獨立的函數相同。 在這種情況下,您可能不需要使用它。 至於單元測試,它幾乎是相同的,因為只有靜態方法的類與函數的差別不大。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM