2011-05-10 2 views
2

함수 내에 정의 된 함수의 인수가 해당 함수의 인수와 동일한 경우 오류를 생성합니까?

함수가 있다고 가정 해보십시오.

function hi(message) { 
    return message; 
} 

함수 내에 함수가 있습니다.

function hi(message) { 
    function say(message) { 
     return message; 
    } 
    say("hello"); 
} 
hi("sup"); 

인수가 서로 같으면 서로 어지럽습니까?

+0

say 내부 액세스 #1 그것의 불가능을 의미 내부 기능에 #2 변수가 변수 그림자된다는 문제가있다? – SLaks

+0

** StackOverflow에 오신 것을 환영합니다! ** –

답변

3

내부 함수 인수는 외부 인수를 숨 깁니다.

오류가 없습니다. 예상대로

+1

글쎄, 그림자가 누군가를 혼란스럽게 할 때까지 어떤 오류도 없을 것입니다. :) –

2

번호

// let this be message #1 
function hi(message) { 
    //Inside this scope we have message === #1 

    // let this be message #2 
    function say(message) { 
     // inside this scope we have message === #2 
     return message; 
    } 
    say("hello"); 
}  
hi("sup"); 

이 작동합니다.

가독성/유지 관리 관점에서 나는 매개 변수/변수 이름을 다시 사용하는 것이 좋지 않다고 생각합니다.

는 또한 #1

이 당신이 그것을 시도해 봤어

관련 문제