Переменная с пользовательским методом valueOf
может возвращать значение, которое не проходит тест:
const obj = {
valueOf() {
return NaN;
}
};
console.log(obj.valueOf() === obj);
Число, заключенное в объект, также вернет false:
const obj = new Number(5);
console.log(obj.valueOf() === obj);
Документация MDN выглядит обманчиво. Object.prototype.valueOf
вернет объект или выдаст ошибку - см. спецификацию .
Имейте в виду, что при вызове valueOf
не для объектов, таких как числа / строки / логические значения, вы Я буду использовать метод valueOf
для этого конкретного примитива (например, Number.prototype.valueOf
), а не Object.prototype.valueOf
.