是否可以在 ES6 中实现相等运算符?

Ste*_*hlf 3 javascript class ecmascript-6

是否可以在 ES6 中实现相等运算符?

与其equals()在类中实现一个方法,不如使用 if (myClassObject1 === myClassObject2) {}

我们可以在 es6 javascript 类中实现自定义数学运算符吗?

在 c# 中,可以按如下方式覆盖它

public static bool operator ==(Complex x, Complex y)
{
   return x.re == y.re && x.im == y.im;
}

public static bool operator !=(Complex x, Complex y)
{
   return !(x == y);
}
Run Code Online (Sandbox Code Playgroud)

sdg*_*sdh 9

不,你不能这样做。

=====运营商的解释在这里,他们不能由程序员来改变。

一个典型的解决方法是定义一个“相等”函数并使用它。例如,使用来自lodash

const a = { name: 'Alireza' };
const b = { name: 'Alireza' };

_.isEqual(a, b); // true
Run Code Online (Sandbox Code Playgroud)

Brendan Eich 在这里讨论了添加“值对象” 。