2012-07-19 30 views
3

讓我說我有foo()。有沒有辦法在foo()之後執行bar()而不修改foo()?如何在不向函數添加代碼的情況下將回調函數添加到現有的javascript函數中?

foo(){ /* logic */} 

bar(){ /* more logic *} 

afterEvent1AlwaysExecute2(foo,bar); 

謝謝!任何非jQuery的jQuery的或評論贊賞:)

+0

你總是可以換'一個新的功能,將內部foo'調用舊的'foo',然後調用'bar'。然後你將這個新函數的名字改爲'foo'。就外部世界而言,'foo'應該如預期那樣工作,但是祕密地,你所替換的實現也會叫'bar'。贏得! – Anurag 2012-07-19 01:14:20

回答

8

你可以不用將代碼添加到foo,通過重新分配的名稱foo

var original_foo = foo; 
var foo = function() { original_foo(); bar(); } 
相關問題