As you can tell I am a big fan of DI, but I kept hearing that DI is not needed with dynamic languages, so after using JS for many months I am happy to say that DI is important there as well. In other words dependency managment and controll matters. But it is different. Say you have a class for greeting with DI. class Greeter { String greeting; Greeter(String greeting) { this.greeting = greeting; }