Answer
t.me/js_testОтвет:
const obj = {
i: 1,
valueOf() {
return this.i++;
},
};
Объяснение:
Как вы могли заметить, в примере используется двойное равно - это значит что возможно мы сможем как-нибудь сыграть на хрупкой системе типов в js :)
В любом javaScript объекте можно объявить функцию valueOf которая будет вызываться если движок захочет привести объект к примитивному значению.
В решении мы объявляем свойство i в объекте obj и метод valueOf который при каждом его вызове вернёт текущее значение i и прибавит к i единичку. Это значит что в момент того как javaScript будет проверять три условия задачи, obj каждый раз будет изменяться под нужное нам значение что в итоге и приведёт к тому что obj будто бы равен сразу 3 разным значениям.
Код для проверки:
const obj = {
i: 1,
valueOf() {
return this.i++;
},
};
console.log(obj == 1 && obj == 2 && obj == 3);