|
|
|
2011-08-04 17:37:541580
|
jQuery¿¡ ´ëÇؼ ùÁÙ¿¡ ³»Æ÷µÇ¾î ÀÖ´ÂÀÇ¹Ì |
|
È£¼®
|
|
| ÀÏ¹Ý | |
|
http://zziuni.pe.kr/zziuni/553
jQuery´Â 1.5±âÁØÀÌ¸ç ½ºÅ͵ð Â÷¿øÀÇ Æ÷½ºÆÃÀÌ´Ï ¸Í½ÅÀº ±Ý¹°, µýÁö´Â ȯ¿µÀÔ´Ï´Ù. ¤»
123 (function(window, undefined){ ... })(window);
À§ ¼Ò½º´Â jQuery 1.5ÀÇ Ã¹ÁÙ°ú ¸Ç ³¡ÁÙÀÔ´Ï´Ù. ÃÖ ¿Ü°¢À̶õ Ç¥ÇöÀÌ ¸Â°Ú±º¿ä.
ÇÔ¼ö¸¦ Ç¥ÇöÇÏ´Â ¹æ¹ý
JavascriptÀÇ ÇÔ¼ö´Â °´Ã¼ÀÔ´Ï´Ù. ÇÔ¼ö°´Ã¼¶ó°í ÇÕ´Ï´Ù. ÇÔ¼ö°´Ã¼¸¦ ¸¸µå´Â ¹æ¹ýÀº Ç¥ÇöÇüÅ¿¡ µû¶ó µÎ°¡Áö·Î ºÐ¸®ÇÕ´Ï´Ù. Function Declaration°ú Function ExpressionÀÔ´Ï´Ù. (¸»Àå³°°Áö¸¸) ¿ì¸®¸»·Î Çϸé ÇÔ¼ö¹®Àå, ÇÔ¼öÇ¥Çö½ÄÀÌ µÇ°Ú½À´Ï´Ù.
12345678 function foo(){ //function declaration ÇÔ¼ö¹®Àå /*...*/} var foo = function(){ //function expression ÇÔ¼öÇ¥Çö½Ä /*...*/}
ÇÔ¼ö¹®ÀåÀ¸·Î ÇÔ¼ö¸¦ Á¤ÀÇÇϸé ÇÔ¼ö¸¦ Á¤ÀÇÇÑ À§Ä¡¿Í °ü°è¾øÀÌ »ó´ÜÀ¸·Î ²ø¾î¿Ã·ÁÁö¸ç, ±× ´öºÐ¿¡ ÇÔ¼öÁ¤ÀǺ¸´Ù À§ÂÊ¿¡¼ È£ÃâÇصµ ÇÔ¼ö ½ÇÇàÀÌ µË´Ï´Ù. ÀÌ·± Ư¡À» HoistingÀ̶ó°í ÇÕ´Ï´Ù.
ÇÔ¼öÇ¥Çö½ÄÀ¸·Î ÇÔ¼ö¸¦ Á¤ÀÇÇϸé HoistringÈ¿°ú°¡ ÀϾÁö ¾Ê½À´Ï´Ù.
¿Ö³ÄÇÏ¸é º¯¼ö¸¦ Á¤ÀÇÇÏ°í, ÇÔ¼ö¸®ÅÍ·²·Î ÃʱâÈÇϱ⶧¹®¿¡ ÃʱâÈÇÏ´Â ¶óÀο¡ µµ´ÞÇÏÁö ¾ÊÀ¸¸é º¯¼ö¿¡ ÇÔ¼ö´Â ÂüÁ¶°¡ °É¸®Áö ¾Ê½À´Ï´Ù.
ÇÔ¼ö¹®Àåµµ Àǹ̻óÀ¸·Ð var foo = function foo(){}¿¡ ÇØ´çÇÏÁö¸¸, ÀÌ·¸°Ô ÀûÀ¸¸é ÇÔ¼öÇ¥Çö½ÄÀÌ µÇ¸ç, hoistingÈ¿°ú´Â ¾ø½À´Ï´Ù. ( ±×¸®°í, IE¿¡ °ü·Ã ¹ö±×°¡ ÀÖ½À´Ï´Ù. ÀÌ·¸°Ô ÀûÀ¸¸é ¾ÈµË´Ï´Ù.)
function(...){/*...*/} À͸íÇÔ¼ö
À͸íÇÔ¼ö¶õ À̸§ÀÌ ¾ø´Â ÇÔ¼ö function(){...}¸¦ ¸»ÇÕ´Ï´Ù. ¹Ù·Î jQueryÃÖ»ó´ÜÀÇ ÇüÅÂÀÔ´Ï´Ù.
À͸íÇÔ¼ö´Â functionÀ¸·Î ½ÃÀÛÇÏÁö¸¸ ÇÔ¼ö¸íÀÌ ¾ø½À´Ï´Ù. µû·Î ºÎ¸¦ À̸§ÀÌ ¾øÀ¸¹Ç·Î µû·Î ½ÇÇà½Ãų ¹æ¹ýµµ ¾ø½À´Ï´Ù. (½ÇÇàÀ» ¸ø½ÃŲ´Ù´Â ¸»ÀÌ ¾Æ´Õ´Ï´Ù.)
´õ±º´Ù³ª À͸íÇÔ¼ö¸¸ µ¢±×·¯´Ï Àû¾î³õÀ¸¸é(¹®ÀåÀÇ ½ÃÀÛÀÌ À͸íÇÔ¼öÀ̸é) ¿¡·¯³³´Ï´Ù. functionÀ¸·Î ½ÃÀÛÇÏ´Ï ÇÔ¼ö¹®ÀåÀ¸·Î º¸À̳ª À̸§ÀÌ ¾øÀ¸¹Ç·Î ¿À·ùÀÔ´Ï´Ù.
±×·³ À§ jQueryÀÇ ¼Ò½º´Â ¿Ö ¿¡·¯°¡ ¾È³¯±î¿ä? ÀÌ·²¶§´Â °ýÈ£¸¦ ¹¾îÁÖ¸é µË´Ï´Ù.
123456789 function(){ /*...*/ } //¿À·ù. (function(){ /*...*/ }) //¿À·ù¾Æ´Ô.
±×·³ À͸íÇÔ¼ö´Â ÇÔ¼ö¹®ÀåÀϱî¿ä ÇÔ¼öÇ¥Çö½ÄÀϱî¿ä? ÀÌ ºÎºÐÀº È®½ÇÇÏÁö ¾ÊÀºµ¥ hoistingÀÌ ÀϾÁö ¾Ê°í, (...)¸¦ »ç¿ëÇÏÁö ¾ÊÀ¸¸é ¿À·ù°¡ ³ª´Â °ÍÀ¸·Î º¸¾Æ (ºÒ¿ÏÀüÇÑ) ÇÔ¼öÇ¥Çö½Ä À¸·Î º¸´Â°Ô ¸Â´Â°Å °°½À´Ï´Ù.
±Ùµ¥ ¿Ö À͸íÇÔ¼öÀϱî¿ä?
±×³É var jQuery = function(){..} ÇÏ¸é µÉ°ÍÀ». º¹ÀâÇÏ°Ô ½Ã¸®.
¿©·¯°¡Áö ÀÌÀ¯°¡ ÀÖ°ÚÁö¸¸, javascriptÀÇ ÇÔ¼ö´Â 'ÂüÁ¶°¡ ¹ß»ýÇÏÁö ¾ÊÀ¸¸é ¸Þ¸ð¸®¿¡¼ Á¦°Å'µË´Ï´Ù. ¹Ý¸é Àü¿ªº¯¼ö´Â 'ÆäÀÌÁö°¡ °»½Å/¼Ò¸ê µÉ¶§°¡Áö ¸Þ¸ð¸®¿¡ »óÁÖ'ÇÕ´Ï´Ù. ±×·¯¹Ç·Î Àü¿ªº¯¼ö¿¡ ÇÔ¼öÇ¥Çö½ÄÀ¸·Î ÇÔ¼ö¸¦ ¸¸µé¸é ÂüÁ¶°¡ ÀϾÁö ¾Ê¾Æµµ ¸Þ¸ð¸®¸¦ Â÷ÁöÇÕ´Ï´Ù. ÆäÀÌÁö°¡ Á×À»¶§±îÁö.
°á±¹ jQuery´Â ¸Þ¸ð¸®¿¡ ½º½º·Î¸¦ ÆäÀÌÁö·Îµù°ú ÇÔ²² Åë쨰·Î ¿Ã¶ó°¡Áö ¾Ê½À´Ï´Ù.
1074¶óÀÎÀ» º¸¸é ´ÙÀ½ ±¸¹®À¸·Î jQuery Core¸¸À» Àü¿ªº¯¼ö jQuery¿Í $¿¡ ¿Ã¸³´Ï´Ù. ÀÌ°ÍÀÌ ¿ì¸®°¡ ¾²´Â $ ÀÔ´Ï´Ù.
12 return (window.jQuery = window.$ = jQuery);
()¿¬»êÀÚ
javascript¿¡¼ ()´Â ÇÔ¼ö¸¦ ½ÇÇàÇÏ´Â ¿¬»êÀÚÀÔ´Ï´Ù. 'ÇÔ¼ö¸í()' À̶õ ÇüÅ·ΠÇÔ¼ö¸¦ ½ÇÇàÇÏÁÒ. append(), get().. ¸ðµÎ ÇÔ¼ö ½ÇÇàÀÌÁÒ.(¸Þ¼Òµå¶ó ºÎ¸£Áö¸¸)
ÇÏÁö¸¸ ¶§·Ð ÇÔ¼ö¸íÀÌ ¾ø´Â ÇÔ¼ö. À͸íÇÔ¼ö(anonymous function)¸¦ ½ÇÇàÇϱ⵵ ÇÕ´Ï´Ù.
ÇÔ¼ö¶õ »ç½Ç append°°Àº À̸§ÀÌ Áß¿äÇÑ°ÍÀÌ ¾Æ´Ï¶ó ±× º¯¼ö¿¡ ÇÒ´çµÈ function(){...}À̶õ ÇÔ¼ö¸®ÅÍ·²À̱⠶§¹®¿¡ À̸§Àº µû·Î ºÎ¸¦ ÀÏÀÌ ¾øÀ¸¸é ¾ø¾îµµ ±×¸¸ÀÔ´Ï´Ù ±×·¯¹Ç·Î
1 (function(){ /*...*/})();
À̸§ÀÌ ¾øÀ» »Ó ½ÇÇàµË´Ï´Ù. °á±¹ jQuery¶õ À͸íÇÔ¼ö¿¡ window¸¦ ÀÎÀÚ·Î ³Ñ°Ü¼ ½ÇÇàÇÑ °á°úÀÔ´Ï´Ù
|
|
|
|
|
|
|
|
|