개체에 다른 개체의 값을 할당 한 다음 원래 개체를 다시 할당하면 두 개체가 모두 변경되는 이유는 무엇입니까?

Donnovan

다음 개체 배열에 대해 몇 가지 계산을 수행했습니다.

array = [ { x: 6, y: 2 }, { x: 7, y: 2 }, { x: 8, y: 2 } ]

반복 할 때마다 인덱스 0에있는 객체를 제외하고 각 객체를 인접한 객체와 동일하게 설정합니다.

for (let i = array.length - 1; i > 0; i--) {
 array[i] = array[i-1]
}

그리고 다음과 같은 대답을 얻었습니다.

[ { x: 6, y: 2 }, { x: 6, y: 2 }, { x: 7, y: 2 } ]

그런 다음 객체를 인덱스 0에 이렇게 설정하고 다음을 array[0].x = 5얻었습니다.

[ { x: 5, y: 2 }, { x: 5, y: 2 }, { x: 7, y: 2 } ]

내 가정은 인덱스 1의 개체도 변경되지 않았을 것입니다. 왜 이런거야?

gdevdeiv

값 대신 참조를 할당하기 때문에 발생합니다.

array[i] = array[i-1]

예를 들어 다음을 사용하여 객체의 단순 복사본을 만들 수 있습니다 Object.assign().

array[i] = Object.assign({}, array[i-1])

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

Related 관련 기사

뜨겁다태그

보관