BGM용 세이라디오
열기▼       고정
전체
글목록

자바스크립트에서 글로벌 scope 변수를 줄이는 법

목요일, 8월 22, 2013
함수를 정의하면 또 그 함수가 전역 변수가 되므로 다음과 같은 구문으로 쓴다.
(function(par1, ...){
var local_variable="this is local";
//명령
})([arg1, ...]);



참고:
function(){}
위와 같이 쓰면 단지 이름없는 함수 하나가 정의될 뿐이다.

function(){}();
위와 같은 코드는 function(){}까지를 정의로 보기 때문에 오류가 발생한다. 맨 위의 경우 js가 function expression으로 해석한다. 따라서 function(){}라는 표현의 뒤에 ();를 붙임으로써 실행시킨다. document.body.onclick=function(){};에서의 function(){}도 표현이다.(여기에 이름을 지으면 단지 이름있는 표현이 되어 나중에 다시 호출할 수 있는 기능이 부가되는 것이다.)

맨위의 구문은 다소 관용적이다.
(function(){}function(){})();
위와 같은 구문은 실행되지 않는다.

위와 같은 해석은 function의 두가지 전형적인 쓰임새에 대한 이해를 바탕으로 하였다.
참조문헌(Mozila)
첫 댓글을 써주세요!

댓글을 인용하려면 @![댓글 ID]!@와 같이 쓰시면 됩니다. "@!" 와 "!@"를 쓰시려면 "+@+!+", "+!+@+"와 같이 써주세요.

페이스북 댓글
.post-outer{ -webkit-transform:none; transform:none; display:inline; padding:0; margin:0; border-width:0; } .hentry>div{ display:none; }