你可以覆盖Javascript中的==做什么?

时间:2016-07-26 19:32:29

标签: javascript equality comparison-operators

在Python中,可以通过为您的班级定义==方法来覆盖__eq__所做的工作。

是否可以在Javascript中执行类似的操作?如果是这样,你怎么做?

我的理解是,默认情况下(也许总是,如果你不能覆盖它),Javascript只会检查当你执行==时两个对象是否驻留在同一地址。我怎样才能直接获得地址?

我问这一切是因为我正在尝试调试一些早已写完的代码。据我所知,两个对象是相同的,但==正在返回false。我正在试图找到原因......我想知道是否==被覆盖了某个地方(但它是一个很大的代码库而且我不知道要搜索什么)或者是否可能是对象是重复的,所以它们存在于不同的地址,尽管我可以说是相同的。知道如何获得地址将有助于确认该理论,并帮助我找到解决问题的方法。

2 个答案:

答案 0 :(得分:3)

通常不是。 JS不允许运算符重载或operator-as-methods。

某些运营商在内部调用toStringvalueOf,您可以覆盖您自己的类,从而影响行为。

答案 1 :(得分:0)

不,不可能直接在JavaScript中覆盖任何运算符。