티스토리 뷰

*내부함수

예를 들어 같은 팀 구성원이 같은 함수명으로 다른 기능의 함수를 구현했다면 ??...

그렇게 된다면 내가 구현해놓은 함수가 작동되지 않고 같은 팀 구성원이 구현해놓은 함수가 작동 될 것이다.

이를 방지하고자 여러가지의 방법이 있겠지만, 내부함수를 이용하는 방법도 좋은 방법이다.

예제 소스를 보자.

//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입문' 책에서 퍼왔다는 것을 밝힌다.

공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
TAG
more
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함