자바스크립트에는 다음과 같이 표현하는 함수 리터럴이 있습니다.
[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]
jslint 에 통과?할려면
(function(){
alert('Run!');
}());
이렇게 써야 되더러구요.. 저는 린트애용자라서 요 방식을 선호합니다. 🙂
호오. 감싸는 괄호 안에 괄호를 넣을 수도 있군요.
뭔지는 정확히 모르겠지만 재밌다~~ 에헤헤 ^_________^
아직 공부가 부족하구려 ㅎㅎ