You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Node.js使用big.js时如何让类的计算属性返回Big类型实例

错误原因

你当前代码中的profit是类的普通实例方法,直接访问a.profit获取到的是函数对象本身,而非函数执行后返回的Big类型值,因此无法调用Big.js的内置方法。

解决方案

方案1:使用getter定义计算属性(推荐)

通过ES6的get关键字将profit定义为计算属性,访问时会自动执行逻辑返回结果,用法和buy、sell等普通属性完全一致:

const Big = require("big.js");

class Trade{
  constructor(name, buy, sell) {
    this.name = name;
    this.buy = Big(buy);
    this.sell = Big(sell);
  }
  // 用get关键字声明计算属性
  get profit() {
    return this.sell.minus(this.buy);
  }
};

修改后即可直接按预期调用:

const a = new Trade("Widget", 123.12345678, 321.87654321)
a.profit.toFixed(8) // 输出:198.75308643

该方案每次访问profit都会基于当前最新的buy、sell值重新计算,完全符合计算属性的特性。

方案2:直接执行方法(无需修改类定义)

如果不想改动原有类代码,调用时补充括号执行profit方法即可拿到返回的Big类型值:

a.profit().toFixed(8) // 输出:198.75308643

内容的提问来源于stack exchange,提问作者Dercni

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.05 13:18:03