Ответ 1
Прежде всего, instanceof
не является абсолютно надежным.
Во-вторых, moment()
возвращает экземпляр класса Moment
, который не отображается пользователю. Следующий код доказывает это:
moment().__proto__.constructor // function Moment()
moment().constructor === moment; // false
В-третьих, Moment
предоставляет функцию moment.isMoment
, которая решит вашу проблему.
И последнее, но не менее важное - ваш код должен использовать согласованные типы возвращаемых данных - всегда возвращать экземпляры Moment
или всегда возвращать строки. Это уменьшит вашу боль в будущем.
Вы можете убедиться, что у вас всегда есть экземпляр Moment
, вызывая функцию Moment
- moment(string)
равно значению moment(moment(string))
, поэтому вы всегда можете преобразовать свой аргумент в экземпляр Moment
.