Однажды мне для юзерскрипта потребовалось обернуть функцию. Вот есть функция repaintMain. Мне нужно обернуть ее, т.е. чтобы когда она вызывается, то сперва бы вызывался ее оригинальный код, а потом мой.
Оказывается, в джаваскрипте это делается довольно просто:
Еще есть способ оборачивания через переименование функции.
Кроме того, есть довольно продвинутые способы оборачивания функции. Которыми можно пользоваться вот так:
Оказывается, в джаваскрипте это делается довольно просто:
repaintMain2 = repaintMain;
repaintMain = function() {
repaintMain2.apply(this, arguments);;
$("li.task.completed").each(AddReaddButton);
};
Узнал об этом способе здесь.Еще есть способ оборачивания через переименование функции.
Кроме того, есть довольно продвинутые способы оборачивания функции. Которыми можно пользоваться вот так:
var beforeExecute = function() { ... }
var afterExecute = function() { ... }
myFunc = wrap(myFunc, beforeExecute, afterExecute);
Комментариев нет:
Отправить комментарий