Как мне изменить / расширить функцию javascript на месте с помощью сценария внедрения? - PullRequest
1 голос
/ 27 января 2011

Допустим, эта функция ...

function foo(param){
// original works
}

уже введена в HTML-документ.

У меня есть букмарклет, который внедряет в документ внешний скрипт.Из этого скрипта я хочу изменить поведение функции foo () в этом ...

function foo(param){
// original works
bar(param);
}

bar () - новая функция во внедренном скрипте.У меня нет проблем с копированием foo во вставленном скрипте.

Как мне это сделать?

1 Ответ

2 голосов
/ 27 января 2011

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

function foo(param){
// original works
}

var old_foo = foo;

function foo(param) {
 old_foo(param);
 bar(param);
}
...