2014-01-23 2 views
1
function getRent(rent){ 
    var rent = 666; 
    return rent; 
} 
function show(){ 

getRent(); 
alert(rent); 
} 

왜 작동하지 않습니까? rent은 정의되지 않았습니다.함수 반환 값이 정의되지 않음으로 반환됩니다.

+0

왜'rent' 매개 변수를'getRent()'에 전달합니까? – Andy

+0

범위에 대한 더 자세한 정보를 얻으려면이 글을 읽어야합니다. http://stackoverflow.com/questions/500431/javascript-variable-scope – Smeegs

답변

3

이 코드에는 여러 가지 문제가 있습니다.

getRent 함수에서 var 키워드를 사용하여 rent 변수를 다시 정의합니다.

둘째로 getRent를 호출 할 때 반환 값을 지정하지 않고 콘솔에 정의되지 않은 변수를 표시하도록 요청하고 있습니다. 당신이 원하는 무엇

function getRent(){ 
    var rent = 666; 
    return rent; 
} 

var rent = getRent(); 
alert(rent); 

혹은

function getRent(rent){ 
    rent = 666; 
    return rent; 
} 

var param = 1; //sample variable to change 
var rent = getRent(param); 
alert(rent); 
1

getRent()에는 rent을 정의하고 show()에는 정의하지 않습니다. 그러므로 rent은 귀하의 경우에 정의되어 있지 않습니다.

시도 :

function getRent(rent){ 
    var rent = 666; 
    return rent; 
} 
function show(){ 
    alert(getRent("params")); 
} 
2

당신은 아무것도 getRent()의 반환 값을 할당하지 않습니다. rentgetRent 함수에서만 정의됩니다.

var rent = getRent(); 
alert(rent); 
1

당신은 getRent의 반환 값을 저장해야()입니다.

function getRent(){ 
    var rent = 666; 
    return rent; 
} 
function show(){ 
    var theRent = getRent(); 
    alert(theRent); 
} 

getRent 내에 정의 rent는, 함수의 외부에서 액세스가 없기 때문에 당신이 예상대로 작동하지 않는 이유는. var 키워드를 사용하여 함수 내에서 선언 된 변수는 변수에 저장 될 값을 다른 곳으로 반환하지 않는 한 동일한 함수 내의 다른 코드에만 "표시"됩니다.

JavaScript의 함수 및 함수 매개 변수의 기본 사항을 읽는 데 도움이 될 수 있습니다. 좋은 기사는 다음과 같습니다 : http://web-design-weekly.com/blog/2013/01/20/introduction-to-functions-in-javascript/

관련 문제