This question more like what is the difference between constructor and initializer.
The initializer lets you set obj’s properties after the obj has been constructed, but before that you can do a lot anything else. And the initializer could be failed by certain reason, but constructor not.
So the constructor is about if the object exist in the world, and the initializer is about if the object start running properly.