在 JavaScript 中,如何让两个类的实例相加可以得到一个数字?

发布于 2022-09-30 23:10:57 字数 226 浏览 18 评论 0

给出下面这样的一个类:

class AnObject {
  constructor(number) {
    this.number = number;
  }
}

如何像下面的结果成立?

const a = new AnObject(1);
const b = new AnObject(2);

a + b === 1 + 2

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

倾城°AllureLove 2022-10-07 23:10:57

在考察类型转换:

对象转成基本类型(ToPrimitive)先调用valueOf方法,没有定义该方法的调用toString方法

参考JS-相等性判断

倾`听者〃 2022-10-07 23:10:57
class AnObject {
  constructor(number) {
    this.number = number;
  }
  valueOf() {return this.number}
}
明天过后 2022-10-07 23:10:57

加valueOf或者toString方法

疾风者 2022-10-07 23:10:57
class AnObject {
    constructor(number) {
        this.number = number;
    }

   // 实例做运算的时候会做类型转换,会调用toString/valueOf方法
    // valueOf() {
    //     return this.number
    // } 

    toString() {
        return this.number
    }
}

const a = new AnObject(1);
const b = new AnObject(2);
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文