2014-10-01 5 views
-1

나는 값을받는 함수를 가지고 있으며 그 값에 따라 함수 내에 또 다른 for 프로 시저를 수행합니다. for 루프는 다르지만 절차는 동일합니다. 나중에 for 안에 함수를 호출하면 첫 번째 함수에서 로컬 변수가 변경됩니다.함수 내의 함수에서 지역 변수 변경

// option = 1 to get first prime number from 1-100, 2 to get the last 

function GetPrimeNumber(option){ 
    var number; 

    if(option == 1){ 
    for(i=1; i < 101; i++){ 
     DetermineIfPrime(i); 
    }  
    } 
    else if (option == 2){ 
    for(i=100; i > 0; i--){ 
     DetermineIfPrime(i); 
    } 
    } 
} 

그리고 수

function DetermineIfPrime(a){ 

//Procedure 

    if (a == prime){ 
    number = a; 
    break; 
    } 
} 

anumber 또는 break 이전 기능 일 것입니다 무슨과 같은 값을 반환 할 수있는 방법이 있다면 나중에 결정 내 기능을 가지고 : 예로들 수 ? 이 같은 number에 값을 반환 DetermineIfPrime 및 세트에서

+2

* "값을 반환하는 방법이 있습니까?"* 예, 있습니다. –

+1

예, 함수에서 값을 반환하는 방법이 있습니다 ... – Bergi

+1

[** MDN JavaScript Guide for functions **] (https://developer.mozilla.org/en-US/docs/Web)를 읽는 것이 좋습니다./JavaScript/Guide/Functions). –

답변

0

return : 당신이 원하는 경우 DetermineIfPrime 기능을 "인식"할 수 있도록

function GetPrimeNumber(option){ 
    var number; 

    if (option == 1) { 
    for(i=1; i < 101; i++) { 
     number = DetermineIfPrime(i); 
    }  
    } else if (option == 2) { 
    for (i=100; i > 0; i--) { 
     number = DetermineIfPrime(i); 
    } 
    } 
} 

function DetermineIfPrime(a){ 

    //Procedure 

    if (a == prime){ 
    return a; 
    } 
} 
0

번호가 GetPrimeNumber 기능에 로컬을 수행해야 GetPrimerNumber 안에 정의하십시오.

그건 방법이 아니에요, 당신은 함수에서 값을 반환하고 로컬 var에 할당해야합니다.