3
讓我說我有foo()。有沒有辦法在foo()之後執行bar()而不修改foo()?如何在不向函數添加代碼的情況下將回調函數添加到現有的javascript函數中?
foo(){ /* logic */}
bar(){ /* more logic *}
afterEvent1AlwaysExecute2(foo,bar);
謝謝!任何非jQuery的jQuery的或評論贊賞:)
讓我說我有foo()。有沒有辦法在foo()之後執行bar()而不修改foo()?如何在不向函數添加代碼的情況下將回調函數添加到現有的javascript函數中?
foo(){ /* logic */}
bar(){ /* more logic *}
afterEvent1AlwaysExecute2(foo,bar);
謝謝!任何非jQuery的jQuery的或評論贊賞:)
你可以不用將代碼添加到foo
,通過重新分配的名稱foo
:
var original_foo = foo;
var foo = function() { original_foo(); bar(); }
你總是可以換'一個新的功能,將內部foo'調用舊的'foo',然後調用'bar'。然後你將這個新函數的名字改爲'foo'。就外部世界而言,'foo'應該如預期那樣工作,但是祕密地,你所替換的實現也會叫'bar'。贏得! – Anurag 2012-07-19 01:14:20