По причинам, которые здесь не перечислены, я считаю потенциально полезным прикреплять функции к объекту окна.Однако я обнаружил довольно странное поведение.
<html><head><script>
function sideEffect() { console.log("Side effect happened. Wewt."); }
window.foo = function() {
sideEffect();
return true;
}
window.bar = function() {
sideEffect();
}
</script></head>
<body>
<a href="javascript:window.foo();">Replaces entire window with "true"</a>
<br />
<a href="javascript:window.bar();">Doesn't</a>
</body></html>
Почему именно вызов функции с возвращаемым значением решает заменить содержимое окна?Это происходит в Firefox и Opera, но не в IE9, Chrome или Safari (все протестированы на Win7).
Итак, вопрос таков: есть ли какая-то документация, которая описывает это поведение?Или это (известная) ошибка в FF / Opera?
[править] Интересно (согласно ответам и комментариям таким образом) кажется, что злоупотребление объектом window
- это красная сельдь здесь.