What's the difference between pass the model and the model.parameters()?

I have a model(A) which needs to be trained based on its similarity to another one(B).

Solution1: I pass B to A’s loss function, in this function, I calculate B.parameters().

Solution2: I pass B.parameters() to A’s loss function.

I run experiments for both methods but the results are very different. I can’t see why… solution 1&2 look the same to me. Did I do something to B in-place when I pass it/its parameters? Why they function differently?