В ECMAScript 6 typeof классов, согласно спецификации, 'function'.
Однако также в соответствии со спецификацией вы не можете вызывать объект, созданный с помощью синтаксиса класса, как обычный вызов функции. Другими словами, вы должны использовать ключевое слово new, иначе вызывается TypeError.
TypeError: Classes can’t be function-called
Итак, не используя try catch, который был бы очень уродливым и разрушал бы производительность, как вы можете проверить, была ли функция получена из синтаксиса class или из синтаксиса function?