问题描述
在一个 React 项目中,我使用的是 moment.js(版本 2.22.2)并希望对其进行扩展并向其添加新功能以简化常见用例。
我尝试了几种不同的扩展 moment.js 的方法,但经过大量实验和谷歌搜索后,我一直无法弄清楚。
以下均无效:
#1:
import moment from 'moment';
moment.formatForDb = () => {
return this.format('YYYY-MM-DD');
};
export default moment;
#2:
import moment from 'moment';
moment.prototype.formatForDb = () => {
return this.format('YYYY-MM-DD');
};
export default moment;
#3:
import moment from 'moment';
moment.fn.formatForDb = () => {
return this.format('YYYY-MM-DD');
};
export default moment;
有谁知道如何扩展 moment.js 以便可以向其中添加新功能?谢谢。
解决方法
非常感谢 Daniel A. White 和 Jeremy Thille 在上面的评论中为我指明了正确的方向。
事实证明你确实需要使用.fn
,但问题是我使用的是箭头函数,而不是标准函数,this
的含义不同.
因此,这是工作代码:
import moment from 'moment';
moment.fn.formatForDb = function () {
return this.format('YYYY-MM-DD');
};
export default moment;
再次感谢!