Parenting or ChildOf
The reason to have a ChildOf constraint is for cases where you need to change parenting during animation. Like when a character needs to grab an item, or throw it- at the moment this happens, you can animate the constraint influence and be able to animate the object properly.

You should use normal parenting for everything else, because this method is far simpler, and simply more correct. The hierarchy is visible in Outliner, mostly exporters will work with it e.t.c.