jquery 분석중인데, 이해 안되는 점..
본문
실행 예 : https://dbushell.com/Nestable/
소스 : https://github.com/dbushell/Nestable
소스중에 js 파일 분석중인데 이해가 안가는 부분이 있습니다.
https://github.com/dbushell/Nestable/blob/master/jquery.nestable.js
여기 보시면 5번째줄
;(function($, window, document, undefined)
이렇게 되있는데, 처음에 ; 세미콜론은 왜 있는건지 모르겠습니다..
그리고,
전체 코드가
;(function($, window, document, undefined)
{
...............................................................................
})(window.jQuery || window.Zepto, window, document);
이런 구조로 되어 있는데, 구조를 잘 모르겠습니다..
window.jQuery || window.Zepto, window, document 이부분은 무언지요..???...
콜백함수인가요??
답변 2
(function(a,b,c){
....
})(arg1,arg2,arg3);
"익명함수를 즉시 실행" 정도로 보시면 됩니다.
처음 괄호안의 함수를 바로 실행하는 거죠.
괄호 안의 함수에 전달되는 매개변수를 두번째 괄호로 전달. 보통 함수 호출할때 이렇게 하잔아요
function myfunc(a,b,c){ ... } <= 함수선언
myfunc(10,20,30); <= 함수호출
---------
(function(a,b,c){ ... })(10,20,30) <= 이름없는 함수를 선언하고 바로호출(실행)
사용하는 이유가 몇가지 있는데
아래 사이트에 설명이 잘 되어있습니다.
https://findawayer.tistory.com/entry/IIE%EC%9D%98-%EC%9D%98%EB%AF%B8%EB%8A%94
오타같은데요. .js 파일이라 include 시키지도 않았을 것이고.