2016-04-06 71 views
32

我的应用程序有一个HTML表单,其中一些输入由后端填充,其他输入由用户输入(在time输入中)。当用户更改一个值时,一个onChange函数会遍历每个输入。如何测试一个变量是否是Moment.js对象?

从后端填充的输入被转换为moment对象,用户输入的日期仅仅是字符串。这意味着onChange函数遇到一些moment对象和一些字符串。我需要知道哪些输入是moment对象,哪些不是。

什么是测试变量是否为moment对象的推荐方法?

我注意到moment对象有一个_isAMomentObject属性,但我想知道是否有另一种方法来测试变量是否为moment对象。

我试过的另一个选择是在变量上调用moment。这会将string变量转换为moment对象,并且似乎不会影响现有的moment对象。

+4

由于[答案在官方文档中](http://momentjs.com/docs/#/query/is-a-moment/),我正在投票结束这个问题作为题外话题。 – Mathletics

+0

尽管有几次搜索,我还没有看到@Mathletics。正如贾里德史密斯指出的,它埋葬在文档中。 –

+1

@Mathletics我实际上是通过浏览源代码找到它的,然后能够控制链接的文档。谷歌没有任何帮助(我想这是首先引发了这个问题的原因),这可以说是一种更为搜索引擎友好的资源(因此可以说是值得为后人留下的)。 –

回答

38

时刻有isMoment method为这样一个目的。除非您知道要寻找什么,否则在文档中找到它并不是特别容易。

它首先检查instanceof,然后失败(例如在某些子类或跨领域情况下),它将测试_isAMomentObject属性。

17

您可以检查它是否是一个instanceof时刻:

moment() instanceof moment; // true 
+4

仅当实例和时刻本身位于同一窗口中时。 – JAAulde

+0

好点,我假设最简单的情况。 –

相关问题