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