Как проверить, является ли переменная объектом Moment.js?
Мое приложение имеет форму HTML с некоторыми входами, заполненными из бэкэнд и другими входами, вводимыми пользователем (в входе time
). Функция onChange
запускается через каждый вход, когда пользователь меняет значение.
Входы, заполненные из бэкэнд, преобразуются в объекты moment
, введенные пользователем даты - это просто строки. Это означает, что функция onChange
встречает некоторые объекты moment
и некоторые строки. Мне нужно знать, какие входы являются объектами moment
, а какие нет.
Какой рекомендуемый метод тестирования, если переменная является объектом moment
?
Я заметил, что объекты moment
имеют свойство _isAMomentObject
, но мне интересно, есть ли другой способ проверить, является ли переменная объектом moment
.
Другой вариант, который я пробовал, вызывает moment
для переменной независимо. Это преобразует переменные string
в объекты moment
и, похоже, не влияет на существующие объекты moment
.
Ответы
Ответ 1
Момент имеет метод isMoment
для такой цели. Это не особенно легко найти в документах, если вы не знаете, что искать.
Сначала он проверяет instanceof
, а затем не выполняет этого (например, в некоторых ситуациях с подклассом или с перекрестными ситуациями) он будет проверять свойство _isAMomentObject
.
Ответ 2
Вы можете проверить, есть ли момент instanceof
:
moment() instanceof moment; // true