참조로 변수를 전달하면 함수가 호출 컨텍스트에서 원래 변수를 수정할 수 있습니다. JavaScript에는 진정한 참조별 전달이 없지만 유사한 기능을 달성하는 방법을 제공합니다.
객체의 콘텐츠를 수정하려면 값으로 함수에 전달합니다. JavaScript에서는 아래 예와 같이 개체 속성을 수정할 수 있습니다.
function alterObject(obj) { obj.foo = "goodbye"; } var myObj = { foo: "hello world" }; alterObject(myObj); alert(myObj.foo); // "goodbye"
숫자 인덱스가 있는 배열 속성을 반복하여 개별 셀을 수정합니다.
var arr = [1, 2, 3]; for (var i = 0; i < arr.length; i++) { arr[i] = arr[i] + 1; }
참고: 사실 JavaScript에서는 참조별 전달(호출 컨텍스트에서 단순 변수 수정)이 불가능합니다. 다음 예는 이 개념을 보여줍니다.
function swap(a, b) { var tmp = a; a = b; b = tmp; } var x = 1, y = 2; swap(x, y); alert("x is " + x + ", y is " + y); // "x is 1, y is 2"
C와 달리 JavaScript는 함수가 호출 컨텍스트에서 간단한 변수를 수정할 수 있는 진정한 참조별 전달을 지원하지 않습니다. 대신 JavaScript는 수정 가능한 객체에 대한 참조 전달만 허용하며, 이는 해당 객체의 내용을 수정하지만 참조는 수정하지 않습니다.
위 내용은 JavaScript에서 참조별 전달을 어떻게 시뮬레이션할 수 있나요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!