[코딩팁] JS 함수 리터럴을 실행하는 방법

자바스크립트에는 다음과 같이 표현하는 함수 리터럴이 있습니다.

[code lang="javascript"]function(){
    alert('Run!');
}[/code]

함수 리터럴은 다른 함수에 인수로서 사용되기도 하지만, 독립적으로 실행되기도 합니다. 독립적으로 실행할 때는 주로 다음과 같이 함수 리터럴 양쪽을 괄호로 감싼 후 다시 괄호 한 쌍을 추가해주는 방식을 주로 사용합니다.

[code lang="javascript"](function(){
    alert('Run!');
})();[/code]

여기서 함수 리터럴을 감싸는 괄호가 없으면 에러가 발생하기 때문에 괄호는 반드시 필요합니다. 하지만, 괄호가 너무 많아서 보기에 좋지 않다 싶으면 다음과 같은 방법을 통해 괄호를 생략할 수도 있습니다.

[code lang="javascript"]!function(){
    alert('Run!');
}();[/code]

사실 ! 대신+-를 붙여도 상관없습니다. 중요한 것은 function() 앞에 의미없는 연산 등을 추가하면 된다는 것입니다. 그래서, 앞서 말한 것보다는 지저분하지만 다음과 같은 방법도 사용할 수 있습니다.

[code lang="javascript"]// with comma
0,function(){
    alert('Run!');
}();
// with AND operation
1&function(){
    alert('Run!');
}();
// with multiplication
2*function(){
    alert('Run!');
}();[/code]

이 팁을 활용하면 코드를 조금 더 깔끔하게 만들 수 있겠습니다.

[adsense]

  1. jslint 에 통과?할려면

    (function(){
    alert('Run!');
    }());

    이렇게 써야 되더러구요.. 저는 린트애용자라서 요 방식을 선호합니다. 🙂

댓글을 남겨주세요

This site uses Akismet to reduce spam. Learn how your comment data is processed.