Рубрики
Без рубрики

Введение в обезьяну Patching jQuery

Это вступительная статья для исправления денег JQuery. Он объясняет концепцию с помощью нескольких примеров и содержит лучшие практики использования этого подхода.

Автор оригинала: Humayun Shabbir.

В этой статье я покажу вам, как модифицировать jQuery, используя методику под названием «Patching Monkey Patching 🐵» или «Утиная штамповка 🦆». Не волнуйтесь, нет жестокости животных

Это общая техника на динамических языках, таких как JavaScript, Python, Ruby для замены поведения программы во время выполнения.

По словам Википедии:

Патч Monkey – это способ программы расширять или изменять поддерживающую системную программное обеспечение локально (затрагивая только запущенный экземпляр программы). Полная статья

Смущенный? Давайте посмотрим пример, чтобы сделать это простым 💡.

Основной пример ✨.

Давайте посмотрим на базовую функцию jQuery. В этом случае наша функция устанавливает текст данного элемента «Привет, мир!».

Вот наш HTML код.





  
  
  
  
  
  Document

    
  

и Javascript

$(document).ready(function() {
  $.fn.hello = function() {
    this.text('Hello, World!');
  };
  $('#button1').click(function() {
    $('#message').hello();
  });      
});

Выход Теперь, давайте напишем патч, который будет добавлять что-то в существующий текст. Итак, в основном наш патч добавит текст на оригинал «Привет, мир!».

код1.png.png.png

Вот наша исправленная версия кода. Это написано как iife (сразу вызывало выражение функции).

📝 Примечание: Вы можете найти больше деталей о жизни здесь Отказ

$(document).ready(function() {
  $.fn.hello = function() {
    this.text('Hello, World!');
  };
  $('#button1').click(function() {
    $('#message').hello();
  });      
  (function($) {
    var original = $.fn.hello;
    $.fn.hello = function() {
      original.apply(this, arguments);
      if(this.text() === 'Hello, World!') {
        this.append(' and Hello, Monkey Patching!');
      }
    }
  }(jQuery));
});

Выход Итак, теперь мы понимаем основы. Давайте посмотрим на реальный мир. Давайте изменим jQuery, используя патч обезьяны.

код2.png.png.png

Изменение jQuery 💲.

Давайте модифицируем себя jQuery и посмотрим, как он даст нам разные вывод. Я собираюсь показать, как мы можем исправить $. wow () Чтобы получить больше дружелюбной даты и времени. Реализация по умолчанию возвращает номер, позвонив (Новая дата) .gettime () Отказ

  (function($) {
    var orig = $.now;
    $.now = function() {
      return new Date().toLocaleString();
    }
  }(jQuery))

Выход Там это ✅

код3.png.png.png

Мы успешно исправили jQuery, и теперь мы получаем более удобную пользовательскую стоимость даты/время от $. wow () Отказ Мы можем использовать ту же методику, чтобы исправить другие функции jQuery и плагины.

Окончательные слова 📝.

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

Преимущества:

  • Вы можете написать патч, чтобы исправить проблему, пока она не зафиксирована в официальном выпуске jQuery.
  • Вы можете изменить функциональные возможности без изменения фактического кода jQuery
  • Это легко удалить его, потому что вы не модифицируете исходный код jQuery, вы можете просто удалить файл исправления, чтобы удалить его.

Подводные камни:

  • Он может сломать функциональность из-за конфликта с существующей переменной или функцией.
  • Если несколько патчей пытаются изменить функцию, наносится последний выполненный патч.
  • Патч может перестать работать, если появятся изменения в новее версии jQuery.

Я надеюсь, что это было полезно. Пожалуйста, напишите в комментариях, если у вас есть какие-либо вопросы или предложения. Я постараюсь вернуться к вам самым ранним. 👍.

giphy.gif.gif.