В динамически типизированных языках, таких как JavaScript и Ruby, DI не так уж и полезен.
Основное преимущество DI в статически типизированных языках, таких как Java, заключается в тестировании - заменить реальную реализацию некоторого класса на макет. Это потому, что в Java классы являются неизменяемыми, и вы не можете просто так легко заменить их на mocks - вам нужна целая система DI для этого.
Но в JavaScript вы можете легко заменить существующие классы / методы на фиктивные. Так что DI на самом деле не нужен для достижения тестируемости.
Конечно, есть и другие сценарии, где DI может быть полезен, но вы на самом деле не указали, для чего вы хотите использовать DI, поэтому я рассмотрел наиболее очевидный случай.