Переопределение глубоких функций в JavaScript - PullRequest
0 голосов
/ 09 апреля 2010

Я довольно новичок в javascript, но взял на себя задачу, чтобы лучше познакомиться с ним.Тем не менее, я сталкиваюсь с некоторыми проблемами с jQuery.Следующий javascript - это код, который находится в стороннем плагине jQuery, и я хотел бы иметь возможность переопределить функцию funFunction () здесь, чтобы сделать мою собственную реализацию.Возможно ли это, если да, как я могу это сделать?Я много занимался поиском и попробовал несколько методов переопределения функции, используя такие вещи, как:

jQuery.blah.funFunction = function() { alert("like this"); };

Основной код:

(function($) { 
    $.extend( {
        blah: new function() { 
          this.construct =  = function(settings) {
              //Construct... stuff
          }; 
          function funFunction() {
            //Function I want to override
          } 
        } 
    });
})(jQuery);

Для тех, кто заинтересованЯ пытаюсь переопределить TableSorter, чтобы единственный способ, которым пользователь может сортировать столбец, только в порядке возрастания.

Edit:

Существует установка WordPress, использующая WP-Table-Reloaded,в свою очередь использует этот плагин.Я не хочу менять основной код для этого плагина, потому что если бы было какое-либо обновление, мне нужно было бы убедиться, что мой предшественник точно знал, что я сделал.

Я программировал длядолгое время и я чувствую, что я легко смогу поднять javascript, а также посмотреть на jQuery.Я точно знаю, что мне нужно для этого сделать, но не знаю, как я могу переопределить эту функцию.

Ответы [ 2 ]

2 голосов
/ 09 апреля 2010

Хорошая особенность jQuery в том, что если плагин не совсем делает то, что вы хотите, вы можете

  • Ищите другой плагин, который делает то же самое;
  • Возьмите плагин, и если это GPL, просто исправьте его

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

Теперь: вы действительно должны серьезно подумать о том, что вы хотите сделать и каковы ваши потребности, и как новичок, какие предположения о "правильном способе делать вещи", что вы " повторное привлечение к вечеринке. Каждая среда программирования имеет свою индивидуальность, которая часто является почти культурной сущностью. Все может показаться странным, или плохим, или уродливым, но, как посторонний, вы должны приостановить суждение, пока вы действительно не привыкнете ко всем идиомам.

0 голосов
/ 09 апреля 2010

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

В любом случае, я бы никогда не рекомендовал извлекать доступную родительскую функцию в виде строки: Но это возможно.

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

В качестве альтернативы вы можете получить файл сценария с помощью вызова ajax, а затем сделать то же самое, что и выше. Я все еще не рекомендовал бы это все же.

...