在HTML头部引入Dinero.js后调用add方法出现getCurrency函数错误
问题描述
我在HTML文件中通过CDN引入了Dinero.js@1.9.1,代码如下:
<script src="https://cdn.jsdelivr.net/npm/dinero.js@1.9.1/build/cjs/dinero.min.js"> </script> <script> Dinero(); Dinero.defaultCurrency = 'USD' </script>
在ES6类中使用Dinero时,调用add函数抛出如下错误:
Uncaught TypeError: a.getCurrency is not a function
触发该错误的示例代码:
var dineroObject = Dinero({amount:100}) dineroObject.add(10)
请问我哪里操作出现了问题?
问题原因及解决方法
- 核心问题:
add方法要求参数必须是另一个Dinero实例,你传入的普通数字10不符合方法的参数要求。 - 错误分析:Dinero.js的
add方法会对传入的对象调用getCurrency方法,校验两者的货币一致性。当你传入数字时,数字没有这个方法,就会抛出类型错误。 - 修正代码:把传入的数字包装成Dinero实例即可:
var dineroObject = Dinero({amount:100}) dineroObject.add(Dinero({amount:10}))
另外,你代码里的Dinero();属于多余的空实例化操作,可直接删除,不影响功能。
内容的提问来源于stack exchange,提问作者Charles Forster
相关产品推荐
相关产品推荐

