P粉3948122772023-08-28 17:35:35
요약하자면, JS 객체를 복사하는 방법에는 네 가지가 있습니다.
...{}
或 Object.assign()
를 사용하세요. lodash
과 같은 유틸리티 라이브러리를 살펴보는 것이 좋습니다. Object.create()
确实创建了一个新对象。这些属性在对象之间共享(更改其中一个也会更改另一个)。与普通副本的区别在于,属性被添加到新对象的原型 __proto__
를 사용하세요. 원본 개체를 절대 변경하지 않을 때 얕은 복사본으로 사용할 수도 있지만, 이 동작이 특별히 필요한 경우가 아니면 위 방법 중 하나를 사용하는 것이 좋습니다. P粉5205457532023-08-28 12:57:02
분명히 당신은 var tempMyObj = myObj;
문의 내용에 대해 약간의 오해를 갖고 있습니다.
JavaScript에서는 객체가 참조(보다 정확하게는 참조 값)로 전달되고 할당되므로 tempMyObj
和 myObj
은 모두 동일한 객체에 대한 참조입니다.
여기에 무슨 일이 일어나고 있는지 시각화하는 데 도움이 되는 단순화된 그림이 있습니다
으아악할당 후에 볼 수 있듯이 두 참조는 모두 동일한 개체를 가리킵니다.
하나는 수정하고 다른 하나는 수정하지 않으려면 사본을 생성해야 합니다.
으아악이전 답변:
다음은 개체의 복사본을 만드는 몇 가지 다른 방법입니다
이미 jQuery를 사용하고 있으므로:
으아악일반 JavaScript 사용
으아악 를 확인하세요.