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