如何判断_
变量是否已经加载了lodash或者underscore库?
我正在一个环境中使用lodash库进行项目开发,但是有时候也会加载underscore库。
目前,我想到了以下方法:
/**
* lodash defines a variable PLACEHOLDER = '__lodash_placeholder__'
* so check if that is defined / contains the string "lodash"
*/
if ( typeof( _.PLACEHOLDER ) == 'undefined' || _.PLACEHOLDER.indexOf( 'lodash' ) < 0 ) {
// _ is underscore, do what I need to access lodash
}
重要更新: 上述代码不起作用!
是否有一种"权威"的方法来检测_
是lodash还是underscore?
注:
这是一个特定的请求,要找到一种确定加载了lodash或underscore在_
变量中的方法:
1. 我不能控制是否加载underscore。(lodash是我控制的范围内,并且将始终加载)。
2. lodash/underscore的加载顺序无法依赖。
3. 加载的underscore版本可能会发生变化(它是CMS框架的一部分,可能会更新)。
4. Lodash 4.17.x有300多个函数。我的代码利用了许多lodash中的函数。
5. Lodash包含许多underscore没有的函数。
6. 某些同时存在于两个库中的函数具有不同的实现。
lodash
中存在而underscore
中不存在的_.VERSION
。 - bhantolVERSION
版本信息(至少它网站上的版本是这样的)。 - Felix KlingisLodash = _.toString().indexOf('lodash') >=0
- bhantol