Excuse me, is this a joke or what? You're asking questions out of context, and we're trying to guess the intention of the piece of code you've provided (without code tags; please remember those).
The natural guess is that this a method to add one complex number to another complex number. To add two complex numbers, you need to add the real parts and add the imaginary parts. Which is what the code does.
that question doesnt make sense.
ill try to answer anyway:
if you set this.real to something from the param named "right", then what would you return?
i think the point here is to add stuff from this, to the param, AND make a new complex object without modifying either this or the param
because if you do
a = 1
b = 3
and then
c = a + b
then c should be 4 but a and b should still have their old values.