验证提供的值是 Lodash 的实例

Verify that a provided value is an instance of Lodash

我正在处理一个需要将 Lodash 实例传递给它的 JS 模块。我想检查传递给它的变量实际上是 lodash 的一个实例,但我很难做到这一点....

这是我尝试各种方法获取它的控制台输出:

_.all()
true
_.identity
Ut(n){return n}
_.identity.name
"Ut"
_.name
"J"
_.prototype.name
undefined
_.prototype.constructor.name
"J"
_.findIndex.prototype.name
undefined
_.constructor.isPrototypeOf(_)
false
_.isPrototypeOf(_)
false
_.isPrototypeOf(_.constructor)
false
_.isPrototypeOf(_.prototype)
false
_.constructor.prototype.name
""
_.prototype.name
undefined
_.isPrototypeOf( new _ )
false
_.__proto__.__proto__.constructor.name
"Object"
_.__proto__.constructor.name
"Function"
_.constructor.name
"Function"
_.prototype.constructor.name
"Ot"

现在如果检查 _ 是否是 _.constructor 的一个实例,就像这样:

_ instanceof _.constructor
true

那显然会说是。但这就像问 "Are you... you?.."

那么有没有办法检查特定变量是否是 Lodash 的实例?

谢谢!

也许最好的解决办法是获取 version 信息,这样也可以为您解决版本之间的差异带来的一些麻烦。除此之外,我看到人们正在寻找他们希望在库中找到的一些特定方法。