Co to jest "autorytatywny" sposób wykrywania, czy zmienna _
jest załadowana z domieszką lub podkreślnikiem?Wykrywanie, czy _ jest domieszką lub podkreślnikiem
Używam lodash dla projektu w środowisku, w którym underscoremoże być załadowany również.
Obecnie mam wymyślić to:
/**
* 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
}
Ważna aktualizacja: Powyższy kod nie działa!
Czy istnieje "autorytatywny" sposób wykrycia, czy _
jest lokalem lub podkreślnikiem?
Uwagi:
Jest to szczególny wniosek, aby znaleźć sposób, aby określić, czy lodash lub podkreślenia jest ładowany w zmiennej _
:
1. To jest poza moją kontrolą, czy podkreślenia jest załadowany czy nie. (lodash jest w ramach mojej kontroli i zawsze będzie załadowany).
2. Nie można powoływać się na kolejność ładunków na podszycie/podkreślenie.
3. Wersja podkreślnika, która jest ładowana, prawdopodobnie ulegnie zmianie (jest częścią struktury CMS, którą można zaktualizować).
4. Lodash 4.17.x ma ponad 300 funkcji. Mój kod wykorzystuje wiele funkcji w lodash.
5. Lodash zawiera wiele funkcji, które podkreślają , a nie.
6. Niektóre funkcje istniejące w obu bibliotekach mają różne implementacje.
Jedyne co mogę myśleć jest '_ .VERSION "obecne w' lodash' ale nie w 'podkreśleniu' – bhantol
@bhantol: underscore ma również wersję' VERSION' (przynajmniej wersja na swojej stronie). –
'isLodash = _.toString().indexOf ('lodash')> = 0 ' – bhantol