2012-03-24 4 views
1

저는 JavaScript를 처음 접했고 일부 변수 및 함수의 속성에 문제가 있습니다.JavaScript의 다른 함수에서 변수 변경하기

나는 하나의 함수에 정의 된 var를 가지고 다른 값을 변경 한 다음 원래 정의 된 함수에 새 값을 반환하려고합니다.

function getIt(){ 
    var x=3; 
    doubleIt(x); 
    alert("the new value is: " + x); 
} 

function doubleIt(num){ 
num *=2; 
return num; 
} 

를이 경고는 여전히 x의 원래 값을 표시 실행하면 다음과 같습니다

내가 만든 간단한 샘플입니다. 원래 함수의 값을 변경 했습니까?

답변

5

가장 간단한 방법은 변수

x = doubleIt(x); 

데모에 결과를 다시 지정하는 것입니다 : 당신이 진정으로 참조로 전달하려는 경우 http://jsfiddle.net/ES65W/


, 당신이 수행하는 객체 컨테이너 필요 가치. 객체는 자바 스크립트에서 참조로 전달됩니다

function getIt(){ 
    var myObj={value:3}; 
    doubleIt(myObj); 
    alert("the new value is: " + myObj.value); 
} 

function doubleIt(num){ 
    num.value *=2; 
    //return num; 
} 

데모 : http://jsfiddle.net/dwJaT/

+1

+1. 자세한 내용은 Google의 "가치에 의한 전달"을 참조하십시오. – ruakh

+0

나는 주먹이 더 "정상적인"것이라고 생각한다. –

관련 문제