gpt4 book ai didi

javascript - 检测 _ 是 lodash 还是下划线

转载 作者:可可西里 更新时间:2023-11-01 02:43:40 29 4
gpt4 key购买 nike

检测 _ 变量是否加载了 lodash 或下划线的“权威”方法是什么?

我正在使用 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 还是下划线?

注意事项:
这是一个特定的请求,希望找到一种方法来确定 _ 变量中是否加载了 lodash 或 underscore:
1.下划线是否加载是我无法控制的。 (lodash 我的控制范围内,并且会一直加载)。
2. lodash/underscore 的加载顺序不能依赖
3. 加载的 underscore 版本可能会改变(它是可能更新的 CMS 框架的一部分)。
4. Lodash 4.17.x 拥有 300+ 个函数。我的代码使用了 lodash 中的许多函数。
5. Lodash 包含许多 underscore 没有提供的功能。
6. 两个库中确实存在的一些函数有不同的实现。

最佳答案

按照@bhantol 已经指出的类似思路,有一个 Migrating doc列出了 lodash 和下划线之间兼容的差异。那些不能用吗?例如,

if ( typeof( _.invoke ) !== 'undefined' ){
// it's lodash
}

但是,是的,放大@felix-kling 和@tadman 以及其他人的评论,如果可能的话,将问题限制在功能(例如:特定方法)级别而不是整个库可能更可靠。

关于javascript - 检测 _ 是 lodash 还是下划线,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41370337/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com