가능한 중복 :
JavaScript Pass Variables Through Reference기능 (PARAM) - 같은 PHP에서
어떻게 자바 스크립트에서 이런 일을 할 수 있습니까?
PHP에서는 매개 변수 앞에 함수 &
을 넣을 수 있습니다. 직접 변수에 쓸 수 있습니다. 어떻게 자바 스크립트에서 이와 같이 할 수 있습니까?
가능한 중복 :
JavaScript Pass Variables Through Reference기능 (PARAM) - 같은 PHP에서
어떻게 자바 스크립트에서 이런 일을 할 수 있습니까?
PHP에서는 매개 변수 앞에 함수 &
을 넣을 수 있습니다. 직접 변수에 쓸 수 있습니다. 어떻게 자바 스크립트에서 이와 같이 할 수 있습니까?
JavaScript에서는 값이 값으로 함수에 전달됩니다. 그러나 객체는 참조로 전달됩니다.
전달 값 :
function myfunction(x)
{
// x is equal to 4
x = 5;
// x is now equal to 5
}
var x = 4;
alert(x); // x is equal to 4
myfunction(x);
alert(x); // x is still equal to 4
전달 개체 :
function myobject()
{
this.value = 5;
}
var o = new myobject();
alert(o.value); // o.value = 5
function objectchanger(fnc)
{
fnc.value = 6;
}
objectchanger(o);
alert(o.value); // o.value is now equal to 6
자료 : referance에 통과라는 http://snook.ca/archives/javascript/javascript_pass
구체적인 차이점은 첫 번째 예제에서'x = 5' 라인은'x'의 원래 매개 변수 값을 버리고'5'로 대체한다는 것입니다. 두 번째 예제에서'fnc' 변수는 이런 방식으로 대체되지 않으므로 전달 된 원래 객체가 업데이트됩니다. – Gareth
개체를 함수로 전달하면 함수에 대한 참조를 전달한 것으로 간주됩니다. 는
var intVal = { val: 0 };
같은 전에 객체는 함수에 전달하고 여전히 실제 변수를 수정할 수 있습니다 그 방법을 포장 수, 원시 값에 대한 유사한 효과를합니다.
그것. – Iznogood
당신은 정확하게 할 수 없습니다. 모든 객체는 참조로 전달되므로 전달되는 객체는 수정할 수 있지만 객체가 저장되는 위치는 수정할 수 없습니다. – zzzzBov