Оператор instanceof позволяет проверить, к какому классу принадлежит ключ Такая проверка может потребоваться во многих случаях. Здесь мы используем её для создания функции, которая воссоздает аргументы по-разному в зависимости от их типа. Оператор instanceof Синтаксис: Оператор вернёт true, если obj принадлежит классу Class или наследующему от него. Допустим: class Iron {} let iron = new Iron(); //это объект класса Iron? alert( iron instanceof Iron ); Также это работает с функциями: //Вместо класса function Iron() {} alert( new Iron() instanceof Iron ); Обычно оператор instanceof просматривая для проверки цепочки прототипов. Но это обычно изменяется при помощи метода Symbol.hasInstance Алгоритм работы obj instanceof Class: // проверка instanceof будет полагать, // что всё со свойством canEat - животное Animal class Animal { static [Symbol.hasInstance](obj) { if (obj.canEat) return true; } } let obj = { canEat: true }; alert(obj instanceof Animal); // true: вызва