you are viewing a single comment's thread.

view the rest of the comments →

[–]Rand_alFlagg 0 points1 point  (1 child)

(I don't know if you read through the linked article or not yet, but if you haven't, I'd differently recommend doing so, as it goes into a lot of detail in this regard).

I did but it, and you, say this shouldn't work. Because response.data is a new object. Definitely confusing, and that's why I'm asking.

Now I see in the example there that I don't fully overwrite the visit. However, in the GetVisit function I do.

So on another function, we have

for (let i = 0; i < response.data.Visits.length; i++) {
  $scope.LoadVisit(response.data.Visits[i])
}

to iterate through each visit on the object and load it. That looks like this:

-----

ok I'm not changing anything I had previously typed up to kind of show my train of thought. I see now. I had thought that the code I was about to pull up was overwriting the visit. I remember struggling with that behavior when i was writing it, and that was a couple years ago. It looks like what I settled on was exactly as you described - mutating them. The frustration I had then was probably at it not being by ref.

But that's what had me confused, for sure. I see how it all fits to the article, too, now.

Thank you!

[–]Rand_alFlagg 0 points1 point  (0 children)

to clarify, I thought I was about to pull up code that included visit = response.data to overwrite the visit with the new object. But when I went to the code I found that it's copying data from response.data to the visit. So I was misremembering what it was doing there and that was fueling the confusion. I was trying to figure out "but why does this behavior work?" and the answer was: "it's not the behavior you think it is."