Tach!
außer der Austauschbarkeit von window und global erlaubt diese Parametrierung auch die Übergabe eines Mock-Objektes für window und damit die Unit-Testbarkeit der Bibliothek.
Ja, man nimmt statt dieser Abhängigkeit eine "Fälschung", mit der man genau das Verhalten emuliert, das man von dieser Abhängigkeit erwartet. Also dass zum Beispiel ein Funktionsaufruf dort ein bestimmtes Ergebnis liefert. Man will das nicht gegen das reale fremde Objekt testen, weil man dann diesem gegebenenfalls ebenfalls ein Ökosystem bieten muss, in dem es laufen kann. Das ist aber nicht das was man bei Unittests nebenher auch noch sicherstellen möchte, sondern da will man sich ganz auf den eigentlichen Test des eigenen Codes konzentrieren können.
dedlfix.