Если вы просто назначите функцию свойству, то вы перезапишите все, что там уже есть.
window.foo = 1;
window.foo = 2;
Foo теперь равно 2, и вы не ожидаете, что это будет цепочка 1, а затем 2, если вы попытаетесь прочитать ее. То, что браузер просматривает свойство и пытается запустить функцию там, где происходит событие, не меняет этого.
Вы можете сделать что-то вроде:
window.foo = aFunction;
oldFunc = window.foo;
window.foo = function () { oldFunc(); anotherFunc(); }
Но я бы порекомендовал использовать addEventListener и друзей. Поскольку мы должны поддерживать Internet Explorer и иметь дело с несколькими моделями событий , я рекомендую использовать уровень абстракции, предоставляемый любой хорошей библиотекой JS, такой как YUI или jQuery.