【发布时间】:2020-01-31 16:14:03
【问题描述】:
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)
};
}
我希望能够做到 new Vector(4,4) + new Vector(0,2) --> Vector(4,6)。 我尝试更改多个部分并查看,但我发现最接近的是旧的 ES5 方法。
【问题讨论】:
-
您不能重载
+运算符。最多,您可以更改使用+时实例转换为的原语,但这会在操作后为您提供原语。您可以创建一个方法来处理操作(就像您在此处所做的那样)。 -
不相关,但在这里使用
add = function(otherarray) {而不是add(otherarray) {会更长且更少性能且收益为零。
标签: javascript class ecmascript-6