티스토리 뷰
*내부함수
예를 들어 같은 팀 구성원이 같은 함수명으로 다른 기능의 함수를 구현했다면 ??...
그렇게 된다면 내가 구현해놓은 함수가 작동되지 않고 같은 팀 구성원이 구현해놓은 함수가 작동 될 것이다.
이를 방지하고자 여러가지의 방법이 있겠지만, 내부함수를 이용하는 방법도 좋은 방법이다.
예제 소스를 보자.
//A가 만든 함수, 제곱을 구하는 함수
function square(x){
return x*x;
}
//A가 만든 함수, 피타고라스 함수
function pythagoras(width, height){
return Math.sqrt(square(width)+square(height));
}
//함수 호출
alert(pythagoras(3,4));
//B가 만든 함수
function square(width, height, hypotenuse){
if(width*width+height*height==hypotenuse * hypotenuse){
return true;
}else{
return false;
}
}
이렇게 될 경우 square함수는 A가 만든 함수보다 B가 만든 함수가 아래에 위치해 있기 때문에 B가 만든 함수가 호출된다.
그렇기 때문에 정상적으로 내가 원하는 값을 얻을 수 없다. (B가 만든 함수를 주석처리 해놓고 실행시키면 원하는 값을 얻는다.)
이 문제점을 해결하기 위해 내부함수를 사용해보자.
function pythagoras(width,height){
function square(x){
return x*x;
}
return Math.sqrt(square(width)+square(height));
}
A가 만들었던 함수를 수정하여 내부함수로 고쳤다. 이제 실행시켜보면 내가 원하던 값을 얻을 수 있다.
하지만 여기서 주의해야 할 점은 내부 함수는 외부에서 사용할 수 없다는 점이다.
외부에서 사용해야하는 함수를 내부함수로 만들어버리면 안되겠지?? 잘 생각해봐야한다.
#여기서의 예제소스는 '한빛미디어'출판사의 '모던 웹을 위한 JavaScript jQuery입문' 책에서 퍼왔다는 것을 밝힌다.
'Front > JAVASCRIPT' 카테고리의 다른 글
[자바스크립트] Firefox 브라우저 사용시 Event리스너에 event등록 (0) | 2016.11.29 |
---|---|
[자바스크립트] js파일에 X박스 뜰 때 (0) | 2013.11.08 |
[자바스크립트] 동적(?), 보여줘야하는 갯수만큼 펼치기(보이기)/접기(숨기기) (0) | 2013.11.08 |
[자바스크립트] 디바이스(PC,모바일) 구별(체크) (0) | 2013.11.08 |
[자바스크립트] window.onload - 페이지 로딩시 자바스크립트 함수 호출 (0) | 2013.11.08 |