self-invoking의 예

(function(v) { return v + 2; })(1);
3

(function(v) { return v + 2; }(1));
3

((v) => { return v + 2; })(1);
3

((v) => v + 2)(1);
3

결과는 같다.

주의. 익명함수를 연속정의하면 오류가 발생하므로, 함수앞에 ";" 붙여주면 좋다.

;(function(v) { return v + 2; })(1);
3

 

또 함수를 감싸서 평가하는 ()를 사용하지 않고 함수앞에 "!"기호 붙여 자기호출을 할 수도 있다. 물론 결과는 true가 return되나 의미는 없다.

!function(v) { console.log(`결과 : ${2 + v}`) }(1);
결과 : 3
true