I am a little late on this, but there is another way I find useful. Two have been mentioned here - merging the objects and parenting one object to another.
Merging is done by selecting both objects and pressing Ctrl + J. Objects become a single object sharing vertices, editable at the same time in Edit mode. In a way, this is a very one way operation - working with the objects separatedly after they have been merged can be difficult.
Parenting the objects affects object hierarchy, here is an Icosphere parented to a cube:
If you for some reason don't want this hierarchy, you can use Object Constraint with the name of
Child Of. Here, I have a Car that has two sets of tires "childed" to it via the Object Constraint:
As far as I can see, it behaves the same as the Parent action, except for the object hierarchy it creates. If you want to prevent excessive object nesting, this seems like a pretty good way to me.
I'm using Blender 2.92