익명함수와 함수 즉시 호출

익명 함수의 필요성

JS에서는 함수가 1>인자로 사용되거나 2>콜백 함수로 사용될 수 있기 때문에,
일회성으로 사용될 코드의 블럭을 함수로 정의하는 경우가 많다.
즉, 이러한 함수의 경우 이름이 꼭 필요하지 않기때문에 익명함수가 필요하다.

  • 중간에 어떤 코드를 추가해야하고 그 코드가 독립적으로 실행되어야한다면?
    -함수를 이용해서 scope를 나눠줘야한다.
    -또한 정의내린 함수는 한 번만 호출하고 정의한 지점에서 바로 호출한다.
<script>
function (){
    //함수 내용
}();
</script>
<script>
function a() {
  for(var i=1 ; i<=5 ; i ++) {
    console.log(i)
  }
}
a();
</script>
<script>
(function() {
  for(var i=1 ; i<=5 ; i ++) {
    console.log(i)
  }
})();
</script>
// 함수를 정의한 부분을 괄호로 둘러싸고 바로 호출할 수 있다.
  • 인자로 바로 전달이 가능해 인자로 함수를 넘길때도 유용하다.
    -마찬가지로 Callback 함수명, 생략가능하다.
<script>
setTimeout(
    function (){
        //함수 내용
    },
    3000 );
</script>
<script>
function callback(){
  console.log("time out");
}
setTimeout(callback, 3000); 
//
setTimeout(function callback(){
    console.log("time out")
}, 
3000);
</script>

좋은 웹페이지 즐겨찾기