При добавлении некоторого кода инициализации на веб-страницу, я обнаружил, что пишу window.onload = ...
в течение девяностого времени, когда мысль ударила меня.Почему мы пишем окно.?
window.
не требуется, потому что window
- текущий объект. Так что это необязательно!
Но никто не пишет только onload = ...
, и я удивляюсь, почему это так.
Я имею в виду, что у нас нет проблем с написанием других вещей, скажем alert
без квалификатора window.
.
window.onload = function() {
alert('Your window has loaded');
};
в то время как в действительности, alert
просто такой же метод window
объекта как onload
есть.
Итак, почему разница? Почему даже официальные сайты, такие как W3C, делают это?
Это * явный *, поэтому никто не думает, что вы просто случайно назначаете глобальную переменную. – Bergi
Мне нравится этот аргумент, так как он объясняет разницу. Присвоение чего-то переменной или вызову функции - вы не могли бы создать новую функцию, просто называя ее, поэтому ясно, что функция уже существует где-то. –
@Bergi Можете ли вы разместить это как ответ? Я думаю, что это все еще самый веский аргумент. –