Warum soll mit dem Erstellen der Funktion gewartet werden, bis das DOM ready ist? Warum kann der Code nicht bereits früher ausgeführt werden?
Wenn du die Frage nach dem Erstellungszeitpunkt einbringst, solltest du erstmal selber beantworten, warum das denn unbedingt früher gemacht werden müsste. Den früheren Erstellungszeitpunkt als Grund anführen zu wollen, die Funktion besser global zu halten, ist meines Erachtens jedenfalls völlig neben der Spur, das hat rein gar nichts mit dem zu tun, worauf ich hinweisen wollte. Da könntest du auch einwenden, dass die zusätzlichen Leerzeichen für die Codeeinrückung Zeit verschwenden.
Anstatt sich den globalen Raum zuzumüllen müllt man sich nun den DOM-Ready-Handler zu. Wo ist da der Unterschied?
Zumüllen ist nicht identisch mit Ablegen, zumüllen bedeutet, Dinge an Orten abzulegen, wo sie unnötig sind. Und hier müllt man mitnichten .ready() zu, denn in .ready() wird die Funktion benötigt, zweimal. Globale Sichtbarkeit ist für sie hingegen überflüssig.
Die Sichtbarkeit in kleineren Bereichen zu halten, anstatt alles global anzulegen, macht sich in aller Regel bezahlt, wenn ein Projekt mit der Zeit wächst. Gleiches gilt für eine Reihe anderer Dinge, die man so gemeinhin unter gutem Stil und vorausschauendem Programmieren zusammenfasst.
Wenn allerdings das Projekt klein genug bleibt, dann lohnen sich diese Betrachtungen kaum.
Und du weisst genau, dass dieses und alle anderen Projekte klein genug bleiben. Nein? Dann wäre es sinnvoll, entsprechend zu antworten.