2016-09-26 5 views
0

Im работает над модулем JS, который требует, чтобы экземпляр Lodash был передан ему. Я хочу проверить, что переменная, переданная ей, на самом деле является экземпляром lodash, но мне трудно это делать ....Убедитесь, что предоставленное значение является экземпляром Lodash

Heres консольный вывод меня, пытаясь различными способами его получить:

_.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 

это, очевидно, сказать, да. Но вот как спрашивать «Ты ... ты? ..»

Так есть способ проверить, является ли конкретная переменная экземпляром Lodash?

Спасибо!

+2

контрольная точка: нет. Ваш потребительский код только технически заботится о том, что функции, которые он будет вызывать, определяются, и вы лично заботитесь только о том, что они делают то, что вы ожидаете от них, как часть lodash. Нет требования тестировать «экземпляр lodash», просто проверьте, чтобы убедиться, что вам понадобятся функции. Но было бы даже лучше написать свой код, чтобы вы знали, что ваш код имеет доступный lodash, а не передавать его позже. Глобально доступный (буквальный глобальный или модуль) lodash козыри, проходящие вокруг экземпляров каждый раз. –

+0

Согласен, ОП не формулирует * почему * хотелось бы даже этого. – Swordfish0321

+0

Я хотел бы сделать это, чтобы убедиться, что аргумент передан функции, является экземпляром lodash ... Im, создающий модуль, который имеет много «помощников» для Mongoose, и я хотел дать пользователям возможность пройти это пример lodash, который затем объединит помощников Mongoose в этот экземпляр lodash. – Justin

ответ

1

Возможно, лучшим решением является поиск информации о version, которая может сэкономить вам проблемы с различиями между версиями. Помимо этого, я видел, что люди ищут определенные методы, которые они ожидают найти в библиотеке.

+0

Это действительно то, что я думал о том, чтобы делать, но это не совсем убедительно, так что это будет «последнее средство». – Justin