JavaScript의 참조에 의한 전달과 값 비교
JavaScript의 함수에 데이터를 전달할 때 참조에 의한 전달의 차이점을 이해하는 것이 중요합니다. 값으로 전달합니다. 이러한 구별은 함수와 호출자 간에 데이터가 공유되고 수정되는 방식에 영향을 미칩니다.
값으로 전달
기본 데이터 유형(문자열, 숫자, 부울)의 경우 JavaScript 항상 값으로 전달됩니다. 이는 기본 값의 복사본이 생성되어 함수에 전달됨을 의미합니다. 함수 내 복사본에 대한 변경 사항은 함수 외부의 원래 변수에 영향을 주지 않습니다.
참조로 전달
객체(배열 포함)는 참조로 전달됩니다. 자바스크립트에서. 이는 함수가 복사본이 아닌 객체에 대한 참조를 받는다는 것을 의미합니다. 함수 내에서 개체 속성을 변경하면 함수 외부의 원래 개체에 영향을 미칩니다.
예
다음 함수를 고려하세요.
function f(a, b, c) { a = 3; b.push("foo"); c.first = false; }
다음 인수를 사용하여 호출하는 경우:
var x = 4; var y = ["eeny", "miny", "mo"]; var z = {first: true}; f(x, y, z);
x 값은 변경되지 않습니다. 값으로 전달됩니다. 원래 y 배열은 push() 작업을 통해 직접 수정되므로 해당 내용이 변경됩니다. 마찬가지로 z의 첫 번째 속성이 수정되어 원본 객체에 영향을 미칩니다.
독립 객체 복사
객체의 완전히 독립적인 복사본을 생성하려면 다음을 사용해야 합니다. 동일한 속성 값을 사용하지만 원본에 대한 참조는 없는 새 객체를 생성하는 메서드입니다. 일반적인 접근 방식 중 하나는 JSON.parse(JSON.stringify()) 기술을 사용하는 것입니다.
var newObject = JSON.parse(JSON.stringify(originalObject));
위 내용은 JavaScript에서 값으로 전달과 참조로 전달의 차이점은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!