【发布时间】:2019-03-11 05:48:10
【问题描述】:
我有许多调度任务函数,它们依赖于我项目中日期时间值的许多便利变量,例如想象一下这样的 10 多行:
let today = moment(),
yesterday = moment().subtract(1, 'days'),
startOfToday = moment(today).startOf("day"),
endOfToday = moment(today).endOf("day");
我不能将这种初始化代码放在 myCode.js 文件的顶部,因为它会导致错误 - myCode.js 中的函数将引用过时的日期时间。例如今天总是指节点服务器启动的日期时间。
现在我正在初始化每个函数中的日期,但这会导致代码重复。
有没有更清洁的方法来做到这一点?
我正在考虑的选项:
a) 创建一个初始化所有常用日期的函数,并在函数顶部调用它。
b) 内联 moment.js 日期时间值并完全摆脱便利变量(有效但使代码更难阅读)。
感谢提示,
谢谢,
-S。阿罗拉
【问题讨论】:
-
如何创建一个自定义对象并将这些变量公开为类变量,然后在构造函数中初始化它们?类似 var convenienceVariables = new ConvenienceVariables();便利变量.昨天,便利变量.startOfToday,等等等等。
-
为什么不创建 thunk 并将便利变量转换为便利函数?让今天 = ()=>moment(), 昨天 =()=> moment().subtract(1, 'days'), startOfToday = ()=> moment(today()).startOf("day") 和等等?
-
是的,这就是我在下面的 stackblitz 参考中所做的。接受的答案建议这样做等等。
标签: javascript momentjs