JavaScript의 참조에 의한 전달과 값에 의한 전달 이해
JavaScript에서 함수에 전달된 매개변수는 항상 값에 의해 전달됩니다. 이는 원래 값의 복사본이 생성되고 원래 값은 복사본에 대한 변경 사항에 의해 영향을 받지 않음을 의미합니다. 그러나 값이 객체(배열 포함)인 경우 생성된 복사본은 원본 객체에 대한 참조입니다.
이 개념은 함수 내에서 변수가 수정될 때 변수의 동작에 영향을 미칩니다.
예:
function f(a, b, c) { a = 3; // Re-assigns a to a new primitive value b.push("foo"); // Adds a new property to b, modifying the referenced object c.first = false; // Modifies a property of the referenced object }
이 예에서는 x, y, 함수 외부의 z는 다음 값을 갖습니다. x는 4(기본 값)로 변경되지 않고 유지되고, y는 이제 추가 속성 ["foo"](객체 속성 추가됨)을 가지며, z.first false로 설정됩니다(객체 속성 수정됨).
객체의 완전히 독립적인 복사본을 생성하려면 해당 객체의 모든 속성을 새 객체에 명시적으로 복사해야 합니다. 이는 Object.sign() 메서드를 사용하거나 객체를 순회하고 이전 속성을 기반으로 하는 새 속성을 사용하여 새 객체를 생성함으로써 수행할 수 있습니다.
위 내용은 JavaScript의 값별 전달 메커니즘은 함수의 기본 변수와 개체 변수에 어떤 영향을 줍니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!