I'm re-evaluating my thoughts on constructor based dependencies vs setter dependencies in JavaScript. I'm trying to see if the same reasons we avoid setter injection in static language like C# and Java still apply in JavaScript.
In other words, why is this:
var a = new A();
var b = new B();
var c = new C(a, b);better than this:
var a = new A();
var b = new B();
var c = new C();
c.a = a;
c.b = b;What are the reasons that you would choose constructor parameters vs setters, and why?
What other options are there for runtime composition of the c object, so that it can correctly make use of a and b? When would you choose those options?
And if I wanted to test this (since I would need to know the intimate details of how C uses A and B):