Марк Байерс правильно объяснил это документацией Mozilla.
Однако это расширение Firefox . Интерфейс WindowTimers - по крайней мере, как в HTML5 рабочий проект - фактически имеет другое требование. Конечно, поскольку это изменчивый домен ...
ручка = окно. setInterval (обработчик [, timeout [, arguments]])
Планирует время ожидания для запуска обработчика каждые миллисекунды. Любые аргументы передаются напрямую обработчику .
Следовательно, Firefox может рассматриваться как нарушение этого правила, так как arguments.length
равен 1, даже если «аргументы не переданы».
Я считаю, что для HTML4 это просто реализация по умолчанию, без каких-либо определенных «официальных стандартов», или, по крайней мере, из тех, которые мне известны, и в этом случае Firefox может делать практически все, что ему угодно. Буду рад за исправление / справку.
Edit:
Firefox поддерживает поддержку передачи аргументов, как отметил Нил, и arguments.length
всегда на единицу больше, чем количество аргументов, переданных для учета данных "смещения" - никакой магии не происходит сделано на arguments.length
(что само по себе было бы страшно).
Это важно иметь в виду: не используйте и / или будьте осторожны при использовании arguments.length
внутри функции обратного вызова таймера или столкновения с браузером. (Это встроено в другие обратные вызовы событий).