When You are calling emit_signal() You can pass whatever argument You like into this signal. Let one of argument be unique identity of your door, or reference to the door itself :
on area_entered(body) :
emit_signal("dooropened", body, self )
In example from documentation You quoted there is another option to pass arguments to a signal. You can specify arguments when connecting node to a signal. In this example [b] was chosen as an argument, that is always passed by nodes connected with this signal. And [b] is variable introduced in this loop, iterated among children of buttons, so it is the emitting node itself ! Every button was connected to pressing signal and forced to pass information about SELF in this signal.
After You specified number of arguments passed with signals, You have to remember, that callback function must intake the same number of arguments, or it will throw error