Answer

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);

Report Page