일단 자바스크립트를 배울 때 좋은 점이라면,

괜찮은 구성의 사이트에서 쉽게 소스코드를 볼 수 있고 크롬에서 바로 써볼 수도 있다는 것.


이 사이트 저 사이트 뒤적 뒤적거리면서 다니다가.

구글 애널리스틱스 코드 실행 부분 모양이 대충..

(function() {
      // 코드
})();


?? 함수를 바로 실행하는 코드를 저렇게 쓰는구나..싶었다.

음.. 그럼 익명 함수에 이름을 붙이면 재사용이 되는지, 괄호에 의한 지역성으로 삭제되는지 테스트를 해봤다.

(function test(){
      alert("hello?");
})();

test();

test는 정의되지 않았다고 에러메시지가 뜬다.



음.. 그럼 this를 리턴해서 따로 저장해야하나?


var f = (function test(){
      alert("hello?");
      return this;
})();

f();

/_-)/ 맹 안된다.

this가 DOMWindow로 되어있다.. 아아..

test.this는? 이건 오류난다.


그냥 함수 이름인 test를 반환해 보았다.


var f = (function test(){
      alert("hello?");
      return test;
})();

f();

오호.. 이건 된다. 그래서 f()()()()()();를 했더니 계속된다.

test 함수가 클로저가 된 셈인듯..?



결론은 함수 정의와 동시에 실행하면서 참조 할 수 있게 변수에 저장이 된다. 음 역시 쓰면 쓸수록 상큼해.

자바와는 또 다른 재미가 있다.



자바스크립트 공부 좀 제대로 해야겠다. 

+ Recent posts