![](/img/trans.png)
[英]Add an existing function to a class as a static method (javascript / es6)
[英]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.