@Narbek

Javascript framework, который использует «$»?

Хочу создать конфликт между jQuery и другим Фрейворком за счет символа "$". Потому что не совсем понял как работает метод noConflict().
  • Вопрос задан
  • 212 просмотров
Решения вопроса 1
var $ = function(){}
И получаешь конфликт на ровном месте.
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
bingo347
@bingo347 Куратор тега JavaScript
Бородатый программер
Классическая реализация метода noConflict() выглядит примерно так:
const original = globalThis.libraryVariable; // сохраняем предыдущее значение заменяемой переменной
globalThis.libraryVariable = libraryExport; // перезаписываем нашей либой
libraryExport.noConflict = () => {
  globalThis.libraryVariable = original; // восстанавливаем сохраненное значение
  return libraryExport; // возвращаем нашу либу
};
где:
globalThis - стандартное (начиная с ES2020) имя для глобального объекта (window, self - в браузере, global - в ноде - псевдонимы)
libraryVariable - глобальная переменная содержащая библиотеку, в случае с jQuery таких переменных 2 - $ и jQuery
libraryExport - внутренняя переменная, которая так же хранит ссылку на библиотеку (это нужно, чтоб либа не сломалась, даже если Вы руками измените глобальную переменную)

P.S. в современном мире большинство библиотек по возможности используют модульную систему и не засоряют глобальный объект
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы