Проблема здесь в том, что в веб-браузерах window
устанавливается как глобальный объект.Это означает, что window.onload
и onload
ссылаются на одно и то же свойство.
console.log(window.onload === onload); // true
Итак, что вы по существу делаете, это
window.onload = window.onload;
, который ничего не меняет.
Если вам нужна функция сто же имя, вы можете поместить его в IIFE (или в любую функцию в этом отношении).В этом случае определенная вами функция не будет помещена в глобальную область и, следовательно, не будет конфликтовать с существующей window.onload
.
(function() {
window.onload = onload;
function onload() {
console.log('event fired');
}
})();
Если вам необязательно указывать имя функции, вы можете, кроме изменения имени функции, также назначить функцию непосредственно onload
следующим образом:
window.onload = function() {
console.log('event fired');
};