Javascript 是否需要检查js变量是否为d3选择?

Javascript 是否需要检查js变量是否为d3选择?,javascript,d3.js,Javascript,D3.js,我在函数中加入了一些变量 如果第一个是d3选择,我想使用它,否则我想使用默认选择 如何检查变量是否为d3选择?要检查变量sel是否为d3选择: var isselection = sel instanceof d3.selection; 请注意,上述文档中提供的(d3.selection的sel instanceof)的答案在IE9中不起作用 这里解释如下: 这是IE9的问题,不会在D3中修复。可以在此提交中找到解决方法: 使用(选择类型[0]!=“字符串”)。这一点并不清楚,但这取决于您是否

我在函数中加入了一些变量

如果第一个是d3选择,我想使用它,否则我想使用默认选择


如何检查变量是否为d3选择?

要检查变量
sel
是否为d3选择:

var isselection = sel instanceof d3.selection;

请注意,上述文档中提供的
(d3.selection的sel instanceof)
的答案在IE9中不起作用

这里解释如下:

这是IE9的问题,不会在D3中修复。可以在此提交中找到解决方法:


使用
(选择类型[0]!=“字符串”)
。这一点并不清楚,但这取决于您是否需要支持IE9。

通常人们使用ducktyping来实现这一点。也就是说,检查变量是否具有您需要的属性,然后假设它是您正在查找的对象(如果它具有某些属性)。实际上的重新绑定方法是抽象的,因为我不想反复重复该代码(返回函数dealies的函数之一)。我目前正在检查D3SelectorNot.selectAll,但这似乎相当笨拙。我使用过的大多数其他库都提供了
isMyLibraryObject()
函数。我希望d3也能,我就是找不到。