Javascript ES6类使构造函数“+”能够被使用

Javascript ES6类使构造函数“+”能够被使用,javascript,class,ecmascript-6,Javascript,Class,Ecmascript 6,我想能够做新向量4,4+新向量0,2->向量4,6。 我试着改变了多个部分并查看了一下,但我发现最接近的是旧的ES5方法。其他答案已经指出,javascript中不能重载运算符,所以我们可以做的是查看您正在使用的add方法 它看起来不起作用,因为您没有将第二个向量中的值添加到结果中 您可以这样尝试: class Vector { constructor(x,y) { this.x = x || 0; this.y = y || 0; } add

我想能够做新向量4,4+新向量0,2->向量4,6。
我试着改变了多个部分并查看了一下,但我发现最接近的是旧的ES5方法。

其他答案已经指出,javascript中不能重载运算符,所以我们可以做的是查看您正在使用的add方法

它看起来不起作用,因为您没有将第二个向量中的值添加到结果中

您可以这样尝试:

class Vector {
    constructor(x,y) {
      this.x = x || 0;
      this.y = y || 0;
    }

    add = function (c) {


        return new Vector(this.x + c.x,this.y+c.y)
    };


  }
不能重载+运算符。最多,您可以在使用+时更改实例转换为的原语,但这将在操作后为您提供一个原语。您可以像在这里所做的那样创建一个方法来处理该操作。不相关,但是在这里执行add=functionotherarray{而不是addotherarray{既长又性能差,没有任何好处。
add = function (otherVector) {
    return new Vector(this.x + otherVector.x, this.y + otherVector.y)
};