【发布时间】:2022-06-15 05:25:08
【问题描述】:
我想知道,是否有任何方法可以比较 2 个自定义字符串对象,它们是扩展 String 的类的实例,使用 == 不起作用,它总是返回 false。
我尝试过使用 valueOf 但没有成功,如果两个操作数都是对象,则永远不会调用该方法。
看下面的例子
class MyString extends String {
doSomething(someData) {
return doSomethingWithData(this, someData);
};
valueOf() {
console.log('valueOf called');
return this.toString();
};
};
当做console.log(new MyString('hi') == 'hi');时,我明白了
valueOf called
true
但是当做console.log(new MyString('hi') == new MyString('hi'));时,我得到false。
那么,valueOf 永远不会被调用,并且比较盲目地返回 false,有没有办法解决它?
【问题讨论】:
标签: javascript string comparison