




| [¾Ë°í¸®Áò] ÀÚ¹Ù½ºÅ©¸³Æ®ÀÇ °´Ã¼¿¡ ´ëÇØ¼ | |||||||
|---|---|---|---|---|---|---|---|
| ±Û¾´ÀÌ |
![]() ![]() Xenia-nZero |
³¯ Â¥ | 10-02-20 08:30 | Á¶ ȸ | 1927 | ||
| Link1 | http://www.phpschool.com/gnuboard4/bbs/board.php?bo_table=tipntech&wr_¡¦ (221) | ||||||
|
ÀÚ¹Ù½ºÅ©¸³Æ®ÀÇ °´Ã¼, ÂüÁ¶, ¹üÀ§¿¡ ´ëÇØ¼ ¾Ë¾Æº¸°íÀÚ ÇÕ´Ï´Ù. Á¶±ÝÀº ³Ð°Ô , ¾ã°Ô ±×·¯³ª ±í°Ô ÆÄº¸µµ·Ï ÇϰڽÀ´Ï´Ù.
ÀÚ¹Ù½ºÅ©¸³Æ®´Â ±âº»ÀûÀ¸·Î °´Ã¼ ±â¹Ý ½ºÅ©¸³Æ® ¾ð¾îÀÔ´Ï´Ù. ¶ó°í Çϸé ÀǾÆÇØ ÇÏ½Ç ºÐµéµµ °è½Ç°Å°í µ¿ÀÇÇÏÁö ¾ÊÀ¸½Ã´Â ºÐµéµµ °è½Ç °Ì´Ï´Ù. ±×·¡¼ Á» ´õ Á¤È®ÇÏ°Ô ¸»ÇÏÀÚ¸é C++, JAVAÀÇ Class ±â¹ÝÀÇ ÀνºÅϽº¸¦ Ȱ¿ëÇÏ´Â °Í°ú´Â ´Ù¸£°Ô °´Ã¼ ±× ÀÚü¿Í Prototype ±â¹ÝÀÇ ÀνºÅϽº¸¦ Ȱ¿ë ÇÕ´Ï´Ù. ÀÌ ¸»Àº ÀÌ ±ÛÀ» º¸½Ã¸é¼ ÀÌÇØÇÏ½Ã°Ô µÉ °ÍÀÔ´Ï´Ù. ÀÌ ±Û¿¡¼ ÀÚ¹Ù½ºÅ©¸³Æ®°¡ OOP·Î¼ Àû´çÇѰ¡, ¾Æ´Ñ°¡¿¡ ´ëÇØ¼ ´Ù·ê·Á°í ÇÏ´Â °Ô ¾Æ´Õ´Ï´Ù. ±×³É ±×·¸´Ù´Â °Ì´Ï´Ù. Â÷¼³Çϰí, º»°ÝÀûÀ¸·Î À̾߱⸦ ÇØº¸°Ú½À´Ï´Ù. Built-in, Native, Host objectÀÚ¹Ù½ºÅ©¸³Æ®´Â ±âº»ÀûÀ¸·Î ECMA Script¸¦ ±â¹ÝÀ¸·Î ÇÕ´Ï´Ù. ECMA ½ºÅ©¸³Æ®¿¡¼ Object´Â Å©°Ô 3°¡Áö Á¾·ù(type(¶Ç´Â form)ÀÌ ¾Æ´Ï¶ó template ¶ó°í ÇÒ±î¿ä)°¡ ÀÖ½À´Ï´Ù. Native Object Built-in Object Host Object ÀÌ·¸°Ô ¼¼ °¡Áö°¡ µÇ°Ú½À´Ï´Ù. [Native Object]´Â ECMA ½ºÅ©¸³Æ®¿¡ Á¤ÀÇµÈ ³»¿ë¿¡ ±â¹ÝÇØ ½ºÅ©¸³Æ®°¡ ÀÛµ¿µÇ´Â Áß¿¡ Á¤ÀǵǴ °´Ã¼ÀÔ´Ï´Ù. ÀÌ °´Ã¼ Áß¿¡¼ ÀϺδ Built-inÀ¸·Î Á¦°øµË´Ï´Ù. Native´Â Host(°³¹ßÀÚ°¡ ÀÛ¼ºÇÑ ½ºÅ©¸³Æ®¿¡ ÀÇÇÑ °Í)°¡ Á¤ÀÇÇÏ´Â °Í º¸´Ù ¿ì¼±½Ã µË´Ï´Ù. [Built-in Object]µµ ¿ª½Ã ECMA¿¡ Á¤ÀÇµÈ °ÍÀ» ±â¹ÝÀ¸·Î ÇÏÁö¸¸, ECMA ½ºÅ©¸³Æ® ÇÁ·Î±×·¥ÀÌ ±¸µ¿µÇ´Â ½ÃÁ¡ºÎÅÍ ¹Ù·Î Á¦°øµÇ´Â °´Ã¼, Áï ½±°Ô ¸»ÇÏ¸é ±âº» °´Ã¼ ÀÔ´Ï´Ù. Native´Â ±âº» °´Ã¼À̱ä ÇÏÁö¸¸ ½ºÅ©¸³Æ®°¡ ±¸µ¿µÇ´Â ȯ°æ¿¡¼ Á¦ÀÛ(construct)µÇ¾î Á¦°øµÇ´Â Á¡ÀÌ ´Ù¸¨´Ï´Ù. [Host Object]. À̰ÍÀÌ ¹Ù·Î ¿ì¸®°¡ ½ºÅ©¸³Æ® ÇÁ·Î±×·¥À» Á¦ÀÛÇÏ¸é¼ ¸¸µé¾îÁö°Ô µÇ´Â °´Ã¼°¡ µÇ°Ú½À´Ï´Ù. Áï ±âº»ÀûÀ¸·Î ÀÚ¹Ù½ºÅ©¸³Æ®°¡ ±¸µ¿µÇ´Â °úÁ¤Àº, ºê¶ó¿ìÀú¿¡ ±âº»ÀûÀ¸·Î ³»ÀåµÈ ECMA built-inÀÌ ±¸¼ºµÇ°í Native°¡ ±¸¼ºÀÌ µË´Ï´Ù. ±×¸®°í »ç¿ëÀÚ ½ºÅ©¸³Æ®¸¦ Àоîµé¿©¼ Host °¡ ±¸¼ºÀÌ µÇ´Â °ÍÀÔ´Ï´Ù. ÀÌÁ¦, ¿ì¸®°¡ ½ÇÁ¦·Î ÀÚ¹Ù½ºÅ©¸³Æ®¿¡¼ ´Ù·ç°Ô µÇ´Â °´Ã¼¿¡ ´ëÇØ¼ ¾Ë¾Æº¸µµ·Ï ÇϰڽÀ´Ï´Ù. ÀÚ¹Ù½ºÅ©¸³Æ®´Â À§¿¡¼µµ À̾߱âÇßµíÀÌ prototype°ú °´Ã¼ ±× ÀÚü¸¦ ±â¹ÝÀ¸·Î ÇÏ¿© °´Ã¼°¡ ±¸¼ºÀÌ µË´Ï´Ù. ÀÚ¹Ù½ºÅ©¸³Æ®(ECMA)¿¡¼ Built-in °´Ã¼´Â Object, String, Number, Boolean, Date, Array, Math, RegExp, Error µîÀÌ ÀÖ½À´Ï´Ù. ±×¸®°í Native °´Ã¼°¡ Host º¸´Ù ¿ì¼±½Ã µÈ´Ù°í ÇÏ¿´´Âµ¥, ±×°ÍÀº ½ºÅ©¸³Æ® ȯ°æÀÌ ±¸¼ºµÇ´Â µ¿¾È ¸ÕÀú built-in °´Ã¼°¡ ±¸¼ºµÇ°í native °´Ã¼°¡ ±¸¼ºµÈ ÈÄ host °´Ã¼°¡ ±¸¼ºµÇ±â ¶§¹®ÀÔ´Ï´Ù.
Áï Host ½ºÅ©¸³Æ®¿¡ ÀÇÇØ¼ name ÀÌ Host·Î ³Ñ¾î°¥ ¼ö´Â ÀÖÁö¸¸ ±× ÀÚü°¡ ¾ø¾îÁö´Â °ÍÀº ¾Æ´Õ´Ï´Ù. ±×·¸±â ¶§¹®¿¡ Number¸¦ »õ·Î ÇÒ´çÇÑ´Ù°í ÇØµµ ¾Æ·¡¿Í °°Àº °Ô °¡´ÉÇÕ´Ï´Ù.
ÀÌ°Ô °¡´ÉÇÑ ÀÌÀ¯´Â prototypeÀ» ÅëÇØ¼ È®ÀåµÈ ±â´ÉÀº built-in °´Ã¼°¡ È®ÀåµÇ°í native °´Ã¼´Â name(Number, String, Object µîµî)ÀÌ ¾ø¾îÁø´Ù°í ¹Ù²îÁö´Â ¾Ê½À´Ï´Ù. À̰ÍÀ» °£´ÜÇÑ ¿¹·Î ÀÌÇØ¸¦ ÇØº¸ÀÚ¸é ¾Æ·¡¿Í °°½À´Ï´Ù.
¿ì¸®°¡ °¡²û ÇÁ·Î±×·¥À» Á¦ÀÛÇÏ¸é¼ ÇÔ¼ö·Î Àü´Þ¹ÞÀº ÀÎÀÚ, ¶Ç´Â ÂüÁ¶ÇÏ´Â º¯¼öÀÇ °ªÀ» È®ÀÎÇÏ´Â °úÁ¤¿¡¼ ¸¹ÀÌ »ç¿ëÇÏ´Â °Ô 'typeof' ¿Í '===', '==' °¡ ÀÖ½À´Ï´Ù. ÀÌÁß¿¡¼ ¿ì¸®¸¦ È¥µ¿ÇÏ°Ô ÇÏ´Â °ÍÀÌ 'typeof' ÀÔ´Ï´Ù.
¿ì¸®´Â x¸¦ ¹è¿·Î ¼±¾ðÇϰí x°¡ ¹è¿ÀÌ ¸Â´ÂÁö È®ÀÎÇϱâ À§Çؼ typeof·Î Array°¡ ³ª¿À±æ ±â´ëÇÏÁö¸¸ object°¡ ³ª¿É´Ï´Ù. Dateµµ ¸¶Âù°¡Áö·Î "object"°¡ ¹ÝȯÀÌ µË´Ï´Ù. ±× ÀÌÀ¯´Â ECMA¿¡ Á¤ÀÇµÈ TypeÀÌ Undefined, Null, Boolean, String, Number, Object, Function À̱⠶§¹®ÀÔ´Ï´Ù. Áï ½±°Ô ÀÌÇØÇÏÀÚ¸é, º¯¼ö¿¡ ÇÒ´çµÇ´Â °ªÀÇ Á¾·ù´Â À§ÀÇ TypeÀ» ¹þ¾î³ªÁö ¾Ê´Â´Ù´Â °ÍÀÔ´Ï´Ù. ±×·±µ¥ ¿©±â¼ ¶Ç Çϳª ¹®Á¦°¡ µÇ´Â °ÍÀÌ Null ÀÔ´Ï´Ù.
x¸¦ null·Î ÇÒ´çÀ» Çϸé TypeÀÌ "null"·Î ³ª¿Í¾ß Çϴµ¥ "object"·Î ³ª¿É´Ï´Ù. ±×·¡¼ ÀνºÅϽº¸¦ ¾Ë¾Æº¸¸é Object´Â ¾Æ´Ï¶ó°í ÇÕ´Ï´Ù. ÀÌ ºÎºÐ¿¡ ´ëÇØ¼´Â ECMA¿¡¼µµ "null"·Î ¹Ù²ÙÀÚ´Â ÀǰßÀÌ ³ª¿Ô¾ú´ø °Í °°Àºµ¥ ±×³É 'typeof null' == "object"·Î Çϱ⵵ Çß´Ù°í ÇÕ´Ï´Ù. ÀÚ¹Ù½ºÅ©¸³Æ®ÀÇ ¸ðµç º¯¼öÀÇ °ªÀº °´Ã¼ÀÔ´Ï´Ù. ±× °´Ã¼ÀÇ TypeÀº À§¿¡¼ ¾ð±ÞÇß´ø °ÍµéÀÔ´Ï´Ù. ¹°·Ð ±×°ÍÀº TypeÀ̰í Á¤È®ÇϰԴ Built-in °´Ã¼°¡ µÇ°ÚÁÒ. ÀÌ Built-in °´Ã¼°¡ µÇ´Â °Ç, °´Ã¼°¡ »ý¼ºµÇ´Â °úÁ¤¿¡ Class Type À¸·Î ¼³Á¤µË´Ï´Ù. ¹°·Ð ÀÚ¹Ù½ºÅ©¸³Æ® ·¹º§ÀÇ Class´Â ¾Æ´Õ´Ï´Ù. ÀÌ·¸°Ô ECMA ±â¼ú·¹º§¿¡¼ »ý¼ºµÇ´Â °´Ã¼µé¿¡ ´ëÇØ¼´Â ¸î °¡Áö ¼³Á¤À» ÇÒ ¼ö ÀÖ½À´Ï´Ù. ¼öÁ¤ÀÌ °¡´ÉÇѰ¡? °°Àº °Íµé ¸»ÀÔ´Ï´Ù. ¿¹¸¦ µéÀÚ¸é
¶ó°í ³ª¿É´Ï´Ù. ¼Ò¼öÁ¡ ¾Æ·¡·Î 0ÀÌ 324°³ Çϰí 5·Î ³¡³ª´Â ¾î¸¶¾î¸¶ ÇÏ°Ô ÀÛÀº ¼ýÀÚÀÔ´Ï´Ù. ¿ì¸®°¡ ¾Ë°í ÀÖ´Â ÀÚ¹Ù½ºÅ©¸³Æ® ¼³Á¤À̶ó¸é Àú MIN_VALUE¸¦ ¸ø¹Ù²Ü °Íµµ ¾ø½À´Ï´Ù. ¿Ö³Ä¸é ÀÚ¹Ù½ºÅ©¸³Æ® ·¹º§¿¡¼ protect Ű¿öµåµµ ¾ø°í constant ¼³Á¤µµ ¾È µÇ±â ¶§¹®ÀÔ´Ï´Ù. ±×·¡¼ ´ÙÀ½°ú °°ÀÌ
ÇÏ°Ô µÇ¸é ¿À·ù¾øÀÌ ½ÇÇàÀÌ µË´Ï´Ù. ÇÏÁö¸¸
ÀÌ·¯ÇÑ °á°ú°¡ ³ª¿É´Ï´Ù. ÀÌó·³ ÀÚ¹Ù½ºÅ©¸³Æ® ·¹º§¿¡¼ typeof ·Î´Â "number" ÀÌÁö¸¸ native °´Ã¼ÀÎ Number¸¦ ÀνºÅϽº ÇÏÁö ¾Ê°í built-in °´Ã¼ Number·Î ¹Ù·Î »ý¼ºµÇ´Â °æ¿ì°¡ ÀÖ½À´Ï´Ù. Built-in °´Ã¼´Â À§ÀÇ ¿¹¿¡¼¿Í °°ÀÌ Á» ´õ ÀÚ¼¼ÇÑ ¼³Á¤ÀÌ °¡´ÉÇÕ´Ï´Ù. ÇÏÁö¸¸ ±×°ÍÀº °¢ ºê¶ó¿ìÀúÀÇ ½ºÅ©¸³Æ® ¿£Áø Ãø¸é¿¡¼ ÀϾ´Â ÀÏÀÌ´Ï ½ÇÁ¦ ÀÚ¹Ù½ºÅ©¸³Æ®¸¦ ´Ù·ç´Â ¿ì¸®¿Í´Â º° Àο¬Àº ¾ø½À´Ï´Ù. ¾Õ¼ Number, String, Object µî°ú °°Àº Native °´Ã¼¿Í Built-in °´Ã¼°¡ ´Ù¸£´Ù°í ÇÏ¿´´Âµ¥, Á» ´õ ÀÚ¼¼È÷ ¾Ë¾Æº¸µµ·Ï ÇϰڽÀ´Ï´Ù. Äڵ尡 ±æ°í ÁöÀúºÐÇØ º¸À̽ÇÁö ¸ð¸£°ÚÁö¸¸, firebug³ª Å©·Ò µð¹ö±×Åø, ¿ÀÆä¶ó °³¹ßÀÚ ÆÐ³Î µî¿¡¼ ÇØº¸½Ã¸é ÀÌÇØÇϱ⠽¬¿ì½Ç °Ì´Ï´Ù.
a ´Â native Number °´Ã¼¸¦ ÀνºÅÏÆ® Çß°í b´Â ±×·¸Áö ¾Ê¾Ò½À´Ï´Ù. ±×·¸Áö¸¸ °á±¹ µÑÀº °°Àº ±â´ÉÀ¸·Î µ¿ÀÛÀ» ÇÕ´Ï´Ù. °è»êµµ µÇ°í ¸»ÀÔ´Ï´Ù. native °´Ã¼·Î ÀνºÅϽº ÇÏ°Ô µÈ a´Â È®ÀåÀÌ °¡´ÉÇÑ °´Ã¼·Î ¹ÝȯµÈ ¹Ý¸é b´Â È®ÀåÀÌ µÉ ¼ö ¾ø½À´Ï´Ù. ÀÌÀ¯´Â native Number °¡ Object¸¦ ÀνºÅϽº ÇÏ¿´±â ¶§¹®ÀÔ´Ï´Ù. native¸¦ ÀνºÅϽºÇÏ°Ô µÇ¸é built-in ¼öÁØ¿¡¼ ¼³Á¤ÀÌ µË´Ï´Ù. ÇÏÁö¸¸ ±×·¸Áö ¾ÊÀº °æ¿ì´Â ±âº» built-in ¼³Á¤ÀÌ µÇ°Ô µË´Ï´Ù. ±×·¯³ª ÀνºÅϽº¸¦ ÇÏÁö ¾ÊÀ» »Ó constructor ÇÔ¼ö¸¦ ±âº»À¸·Î »ç¿ëÇÏ¿© built-in °´Ã¼°¡ ¹ÝȯÀÌ µË´Ï´Ù. ´ÙÀ½ÀÇ ¿¹¸¦ º¸½Ã¸é
Áï native´Â built-in °´Ã¼¸¦ »ý¼ºÇϱâ À§ÇÑ class ¶ó°í º¸½Ã¸é µË´Ï´Ù. ´ë½Å ÀÚ¹Ù½ºÅ©¸³Æ® ·¹º§¿¡¼ nativeÀÇ ÀνºÅϽº ¿©ºÎ¿¡ µû¶ó¼ »ý¼º Á¶°ÇÀÌ ´Þ¸®Áö´Â °ÍÀÔ´Ï´Ù. ±×·¸±â ¶§¹®¿¡ ÀÚ¹Ù½ºÅ©¸³ »ó¿¡¼ var a = 1; ÇßÀ» °æ¿ì a ´Â °´Ã¼°¡ ¾Æ´Ñ °Í °°Áö¸¸ ¿°¿¬È÷ construct¸¦ °¡Áø °´Ã¼¶ó°í ÇÒ ¼ö ÀÖ½À´Ï´Ù. °£´ÜÈ÷ Áö±Ý±îÁöÀÇ ³»¿ëÀ» ¿ä¾àÇÏÀÚ¸é, ÀÚ¹Ù½ºÅ©¸³Æ®ÀÇ ¸ðµç º¯¼öÀÇ °ªÀº °´Ã¼ÀÌ¸ç ±×°ÍÀº ºê¶ó¿ìÀú ¿£ÁøÀÇ(ECMA ±â¼ú·¹º§) ¼³Á¤À» µû¸£¸ç, native °´Ã¼¸¦ ÀνºÅϽº ÇÏ´À³Ä, ÇÏÁö ¾Ê´À³Ä¿¡ µû¶ó¼ ¹ÝȯµÈ °´Ã¼ÀÇ È®À强 ¿©ºÎ µîÀÌ ´Þ¶óÁø´Ù. ¶ó´Â °ÍÀÔ´Ï´Ù. ÀÌÁ¦ º°·Î µµ¿òÀÌ ¾È µÇ¾ú´ø ±×¸®°í ¹º ¼Ò¸°Áö Àß ¸ð¸£°Ú´ø built-in °´Ã¼ µîµîÀÇ À̾߱â´Â ±×³É ±×·±°¡º¸´Ù ÇÏ¸ç ³Ñ¾î°¡°í (»ç½Ç ÀÛ¼ºÇÏ¸é¼ Àúµµ ¿ë¾îµµ È¥µ¿µÇ°í ³»¿ëµµ È¥µ¿µÇ°í ±×·´´Ï´Ù.) °´Ã¼ ³»¿¡¼ÀÇ ÂüÁ¶¿¡ ´ëÇØ¼ ¾Ë¾Æº¸µµ·Ï ÇϰڽÀ´Ï´Ù. Object ReferenceÀÚ¹Ù½ºÅ©¸³Æ®ÀÇ ±âº»°´Ã¼´Â window ÀÔ´Ï´Ù. ±×·¸±â ¶§¹®¿¡ ¿ì¸®°¡ ½ºÅ©¸³Æ®¸¦ ÀÛ¼ºÇÏ¸é¼ ¼±¾ðÇÏ´Â Àü¿ªº¯¼öµéÀº »ç½Ç»ó window °´Ã¼¿¡ Á¾¼Ó(bind)µË´Ï´Ù. ½±°Ô ¸»ÇÏÀÚ¸é Àü¿ª ³×ÀÓ½ºÆäÀ̽º(namespace)·Î window°¡ »ç¿ëµÈ´Ù´Â °ÍÀÔ´Ï´Ù. (»ç½Ç ³×ÀÓ½ºÆäÀ̽º¿Í´Â °³³äÀÌ ´Ù¸£´õ¶óµµ ½±°Ô »ý°¢ÇÏÀÚ´Â Àǹ̿¡¼)
°ú
´Â °°Àº °ÍÀÔ´Ï´Ù. ±×·¸Áö¸¸ ºê¶ó¿ìÀú º°·Î µÎ °³¸¦ ´Ù·ç´Â ¼ÓµµÀÇ Â÷ÀÌ´Â Á¦°¢°¢À̶ó´Â °É ¿°µÎÇÏ¼Å¾ß ÇÕ´Ï´Ù. ÀÌ¿Í °ü·ÃÇØ¼´Â ¿¹Àü¿¡ ÀÛ¼ºÇÑ Speed up Javascript ¶ó´Â °Ô½Ã¹°À» ÂüÁ¶ÇÏ½Ã¸é µË´Ï´Ù. ÀÚ¹Ù½ºÅ©¸³Æ®¿¡¼ °´Ã¼ÀÇ ¹üÀ§´Â °´Ã¼ ±× ÀÚ½ÅÀÇ ÇÁ·ÎÆÛƼ(property)±îÁö¸¸ ÇÑÁ¤µË´Ï´Ù. ÀÌ ¸»Àº ¿ì¸®°¡ ÀÚÁÖ »ç¿ëÇÏ°Ô µÇ´Â this¿Í °ü·ÃÀÌ ÀÖ½À´Ï´Ù. Áï thisÀÇ ¹üÀ§´Â °´Ã¼ ±× ÀÚ½ÅÀ» °¡¸®Å°´Â °ÍÀÔ´Ï´Ù.
obj1ÀÇ °æ¿ì ¸Þ¼Òµå a´Â ÇÔ¼ö·Î ÇÔ¼ö ³»ºÎÀÇ this´Â obj1À» °¡¸®Åµ´Ï´Ù. ¿Ö³Ä¸é a°¡ obj1¿¡ Á¾¼ÓµÇ¾î Àֱ⠶§¹®ÀÔ´Ï´Ù. ¹Ý¸é obj2ÀÇ ¸Þ¼Òµå qÀÇ this´Â obj2°¡ ¾Æ´Ñ a¸¦ °¡¸®Åµ´Ï´Ù. º¸½Ã´Ù½ÃÇÇ q°¡ a¿¡ Á¾¼ÓµÇ¾ú±â ¶§¹®ÀÔ´Ï´Ù. ÀÌ·¯ÇÑ Á¾¼ÓÀÇ °ü°è¿Í ±âº» ³×ÀÓ½ºÆäÀ̽º(°´Ã¼)ÀÎ window·Î ÀÎÇØ¼ ¾Ë¸é ´ç¿¬ÇÑ °ÍÀÌ°í ¸ð¸£¸é Ȳ´çÇÑ °á°ú°¡ ³ª¿À±âµµ ÇÕ´Ï´Ù.
[] ´Â ±âº»ÀûÀ¸·Î Array °´Ã¼À̰í reverse´Â Array ¸Þ¼Òµå ÀÔ´Ï´Ù.
´Â °á°úÀûÀ¸·Î x´Â reverse ÇÔ¼ö°¡ µË´Ï´Ù. ±×¸®°í ¾Õ¼ ¸»ÇÑ¹Ù¿Í °°ÀÌ ±âº» ³×ÀÓ½ºÆäÀ̽º´Â window ÀÔ´Ï´Ù.
reverse°¡ this ·Î Array °´Ã¼¸¦ ´Ù·é´Ù°í ÇÑ´Ù¸é ÇÔ¼ö ³¡¿¡ return this; ÀÌ·¸°Ô ÇÏ°Ô µÇ¸é window¿¡ ¹ÙÀÎµå µÈ x ´Â window¸¦ ¹ÝȯÇÏ°Ô µË´Ï´Ù. À̰ÍÀ» ´ÙÀ½°ú °°ÀÌ Çϸé È®½ÇÇÏ°Ô ¾Ë ¼ö ÀÖ½À´Ï´Ù.
ÀÌ °æ¿ì¿¡´Â a°¡ b¿¡ ¹ÙÀεù µÈ »óű⠶§¹®¿¡ this°¡ b¸¦ °¡¸®Å°±â ¶§¹®¿¡ b¸¦ ¹ÝȯÇÏ°Ô µË´Ï´Ù. ÀÌ·¸°Ô µÇ´Â ÀÌÀ¯´Â ÇÁ·ÎÆÛƼ¿¡ ¿¬°áµÇ´Â ¸ðµç °ªµéÀº °´Ã¼ÀÌ°í °´Ã¼´Â »ý¼ºµÇ¾îÁø ÈÄ ÂüÁ¶°¡ µÇ¾îÁö´Â °ÍÀ̱⠶§¹®ÀÔ´Ï´Ù. ÀÌ ÂüÁ¶¿¡ ´ëÇÑ ½¬¿î ¿¹¸¦ µé¸é ¾Æ·¡¿Í °°½À´Ï´Ù.
´Ü, ¼ýÀÚ³ª ¹®ÀÚ¿, ºÎ¿ïÇüÀº °´Ã¼ ±× ÀÚ½ÅÀ» º¯°æÇÏ°Ô µÇ¹Ç·Î »õ·Î¿î °´Ã¼°¡ ÇÒ´çµÇ°í ÂüÁ¶ÀÇ ¿¬°áÀº ²÷¾îÁö°Ô µË´Ï´Ù. ±×°ÍÀº °´Ã¼³ª ¹è¿¿¡¼µµ ¸¶Âù°¡ÁöÀÔ´Ï´Ù.
ÂüÁ¶°¡ ²÷¾îÁ³´Âµ¥ ¿Ö ´Ù¸¥ º¯¼ö´Â ¾È ²÷¾îÁ³´Â°¡ ÇÏ¸é ¾Õ¼ built-in °´Ã¼¸¦ »ý°¢ÇÏ½Ã¸é µË´Ï´Ù. Áï º¯¼öµéÀº built-in °´Ã¼¸¦ ÂüÁ¶ÇÏ´Ù°¡ »õ·Î¿î °´Ã¼°¡ ÇÒ´çµÇ¸é ÇØ´ç built-in °´Ã¼ÀÇ ÂüÁ¶¸¦ ²÷°í »õ·Î¿î built-in °´Ã¼¸¦ ÂüÁ¶ÇÏ°Ô µË´Ï´Ù. ¾Æ½Ã°ÚÁö¸¸ ÇÔ¼öÀÇ ±â´É Áß¿¡ apply ¶ó´Â °ÍÀÌ ÀÖ½À´Ï´Ù. °£´ÜÈ÷ ¸»ÇÏÀÚ¸é ÂüÁ¶ÀÇ ¹üÀ§¸¦ °øÀ¯ÇÏ°Ô µÇ´Â °ÍÀÔ´Ï´Ù.
Äڵ忡¼ º¸ÀÌ´Â ¹Ù¿Í °°ÀÌ obj °´Ã¼¿¡´Â length ÇÁ·ÎÆÛƼ°¡ ¾ø±â ¶§¹®¿¡ obj.a()¸¦ È£ÃâÇϸé undefined °¡ ¶å´Ï´Ù. ÇÏÁö¸¸ obj.a.apply(arr) ÇÏ°Ô µÇ¸é arrÀÇ length°¡ Ãâ·ÂÀÌ µË´Ï´Ù. Àú apply¸¦ ¾Æ¿¹ Á¾¼ÓÇØ¼ ÀÌ·¸°Ôµµ ÇÒ ¼ö ÀÖ½À´Ï´Ù.
¶Ç´Â function ÀÚü¸¦ È®ÀåÇØ¼
ÀÌ·¸°Ô ÇÒ ¼öµµ ÀÖ½À´Ï´Ù. ¿©±â¼ ÁÖÀÇÇÒ Á¡Àº fn.binding ÀÔ´Ï´Ù. ¿ì¸®°¡ ¾Æ·¡¿Í °°ÀÌ »ç¿ëÀ» ÇÏ°Ô µÈ´Ù¸é
fn.binding ³»ÀÇ this´ÂfnÀ» °¡¸®Å°°Ô µÇ°í, this.length ´Â window.length¿Í °°Àº È¿°ú¸¦ Áö´Ï°Ô µË´Ï´Ù. ÀÌÀ¯´Â fnÀÌ À©µµ¿ì¿¡ Á¾¼ÓµÇ¾î window.fn °ú °°ÀÌ µÇ¹Ç·Î fnÀÇ this´Â window°¡ µÇ°í, °á°úÀûÀ¸·Î fn.bindingÀÇ this.length´Â fn³»¿¡¼ this.length¿Í °°Àº °ÍÀÌ µË´Ï´Ù. °´Ã¼¸¦ ã°Ô µÇ´Â ¼ø¼´Â Áö¿ª(ÇÔ¼ö ³») º¯¼ö°¡ ¿ì¼±½Ã µÇ°í ¾øÀ¸¸é Àü¿ªº¯¼ö¿¡¼ ã°Ô µË´Ï´Ù. ±×·¡¼ º¸Åë ºü¸¥ ¼Óµµ¸¦ ³»±â À§Çؼ´Â ÇÔ¼ö³»¿¡¼ ÀÚÁÖ »ç¿ëµÇ´Â Àü¿ª º¯¼ö¸¦ Áö¿ªº¯¼ö¿¡ ÇÒ´çÇϱ⵵ ÇÕ´Ï´Ù. ¹®Á¦´Â Ŭ·ÎÀú(closure)¿¡ ÀÖ½À´Ï´Ù. ClosuresŬ·ÎÀú´Â Áö¿ªº¯¼ö, Àü¿ªº¯¼öµµ ¾Æ´Ñ ¹ö·ÁÁø º¯¼ö¶ó°í ÇÒ ¼ö ÀÖ½À´Ï´Ù. Ŭ·ÎÀú´Â À¯¿ëÇÏ°Ô »ç¿ëÇÒ ¼ö ÀÖÁö¸¸, º¸ÅëÀº ÀǵµÇÏÁö ¾ÊÀº »óȲ(Ŭ·ÎÀú¶ó´Â °³³äÀ» ¸ð¸£°Å³ª »ç¿ëÇÏÁö ¾ÊÀ¸·Á ÇßÀ» °æ¿ì)¿¡¼ ¿¬ÃâµÇ´Â °æ¿ì¿¡ ¸¹ÀÌ ¹ß»ýÇÑ´Ù´Â °ÍÀÔ´Ï´Ù. ±×¸®°í À̰ÍÀº ¸Þ¸ð¸® °ü¸®¿¡ ÀÖ¾î¼ ¹®Á¦°¡ µÇ±âµµ ÇÕ´Ï´Ù. ÀÚ¹Ù½ºÅ©¸³Æ®´Â »ç¿ëÇÏÁö ¾Ê´Â º¯¼öµéÀ» ó¸®ÇÏ´Â GC(Garbage collection)°¡ ÀϾ ¸Þ¸ð¸®¸¦ Á¤¸®ÇÕ´Ï´Ù. ¹®Á¦´Â Ŭ·ÎÀú·Î ó¸®µÈ º¯¼öµéÀº ÇÔ¼öÀÇ ¼öÇàÀÌ ³¡³ªµµ ³²¾ÆÀÖ°Ô µÈ´Ù´Â °ÍÀÔ´Ï´Ù. ¹æ±Ý functionÀ» È®ÀåÇÏ´ø ºÎºÐ¿¡¼
ÀÌ ºÎºÐÀ» º¸½Ã¸é ¹ÝȯµÇ´Â ÇÔ¼ö¿¡ 's'°¡ ÀÖ½À´Ï´Ù. °á·ÐÀûÀ¸·Î
obj.a ´Â ¸Å ½ÇÇà½Ã s ¶ó´Â ÇÔ¼ö¸¦ ½ÇÇàÇÏ°Ô µÇ´Âµ¥, ½ÇÁ¦·Î ÀÌ ÇÔ¼ö´Â Àü¿ª(global)À¸·Î ¸í½ÃµÈ »óȲÀº ¾Æ´Õ´Ï´Ù. ÇÏÁö¸¸ ÇÔ¼ö´Â ½ÇÇà½Ã¿¡ s¸¦ ÂüÁ¶ÇÒ ¼ö ÀÖ½À´Ï´Ù. º¸ÅëÀ̶ó¸é ÇÔ¼ö°¡ ¼öÇàµÈ µÚ¿¡´Â Áö¿ªº¯¼ö´Â ¾ø¾îÁö´Â °Ô ¸ÂÁö¸¸ ÀÌ °æ¿ì¿¡´Â ¹ÝȯµÇ´Â °ª¿¡¼ Áö¿ªº¯¼ö¸¦ ÂüÁ¶Çϱ⠶§¹®¿¡ ¸Þ¸ð¸®»ó¿¡ built-in °´Ã¼°¡ ³²°Ô µË´Ï´Ù. ¹°·Ð ¾î¶² Ư¼öÇÑ ¸ñÀûÀ¸·Î °è»êµÈ, ÇÑÁ¤µÈ ¹üÀ§ ³»¿¡¼ÀÇ Å¬·ÎÀúÀÇ »ç¿ëÀº ¸Å¿ì À¯¿ëÇÕ´Ï´Ù. Ŭ·ÎÀúÀÇ À¯¿ëÇÔÀ̶õ ¹Ù·Î, ÀÚ¹Ù½ºÅ©¸³¿¡¼ private ¸â¹ö(method, property)¸¦ ±¸ÇöÇϴµ¥ ÀÌ¿ëÇÒ ¼ö ÀÖ´Ù´Â °ÍÀÔ´Ï´Ù.
À§¿Í °°ÀÌ ±¸ÇöÀ» ÇÏ¿´À» ¶§, animal ¾ÈÀÇ nick°ú age´Â ºÐ¸í ¿ÜºÎ¿¡¼ Á¢±ÙÇÒ ¼ö ¾ø½À´Ï´Ù. ÇÏÁö¸¸ Ŭ·ÎÀú°¡ Çü¼ºÀÌ µÇ¸é¼ ¿ÜºÎ¿¡¼´Â Á¢±ÙÀÌ ¾È µÇ´Â private ¸â¹ö°¡ ¸¸µé¾îÁö°Ô µË´Ï´Ù. Ŭ·ÎÀú´Â ÀÌ·± À¯¿ëÇÔÀÌ ÀÖÀ¸¸é¼µµ ÁÖÀǸ¦ ¿äÇÏ´Â °ÍÀº ºñ´Ü ¸Þ¸ð¸® ´©¼ö¿Í °ü·ÃµÈ ¹®Á¦¸¸ÀÌ ¾Æ´Õ´Ï´Ù. ¸Þ¸ð¸® ´©¼ö¿Í °ü·ÃµÈ À̾߱â´Â ¸¹ÀÌ µé¾îº¸¼ÌÀ» °ÍÀ̰í, ±× ÀÌÀ¯´Â Ŭ·ÎÀú°¡ GC¿¡¼ ȸ¼ö°¡ ¾È µÇ°í, ÇØ´ç ±¸ºÐÀÌ Áö¼ÓÀûÀ¸·Î ½ÇÇàµÇ¸é¼ °è¼ÓÇØ¼ ½×ÀÌ°Ô µÉ ¼ö Àֱ⠶§¹®ÀÔ´Ï´Ù. ±×¸®°í ¶Ç ´Ù¸¥ ÀÌÀ¯´Â ³×ÀÌ¹Ö ÂüÁ¶, ±×·¯´Ï±î Àü¿ªº¯¼ö¸¦ ÂüÁ¶Çϱâ À§ÇØ nick ¸¦ ½è´Âµ¥, ±×°Ô Ŭ·ÎÀú¸¦ ÂüÁ¶ÇÏ´Â °æ¿ìµµ »ý±æ ¼ö ÀÖ´Ù´Â °ÍÀÔ´Ï´Ù. ¹°·Ð. window.nick ¿Í °°Àº ¹æ¹ýÀ» »ç¿ëÇÏ¿© ÇÇÇÒ ¼öµµ ÀÖ½À´Ï´Ù. Ŭ·ÎÀú°¡ ¿ì¸®°¡ »ý°¢ÇÏÁö ¸øÇß´ø, Áï ÀǵµÇÏÁö ¾Ê°Ô ÀϾ¼ ¸Þ¸ð¸® ¹®Á¦¸¦ ÀÏÀ¸Å°´Â °æ¿ìÀÇ ºÎºÐÀº setTimeoue ¼³Á¤À̳ª À̺¥Æ®¼³Á¤¿¡¼ ¸¹ÀÌ ¹ß»ýÇÕ´Ï´Ù. ÀÌÀ¯´Â ¿ì¸®°¡ ÀÌ µÑ¿¡ ÇÒ´çÇÏ´Â ÇÔ¼ö°¡ ¹Ì¸® ÁöÁ¤µÈ ÇÔ¼ö¸¦ ¾²´Â °æ¿ìµµ ÀÖÁö¸¸, ±× ¶§ÀÇ »óȲ¸¶´Ù À͸íÇÔ¼ö¸¦ ÇÒ´çÇÏ´Â °æ¿ìµµ ¸¹±â ¶§¹®ÀÔ´Ï´Ù. ¿¹¸¦ µéÀÚ¸é
ÀÌ·± °æ¿ì°¡ ÀÖ´Ù°í Çϸé, Àú ÇÑ ¹øÀÇ °æ¿ì´Â º° ¹®Á¦°¡ µÉ °ÍÀÌ ¾÷½À´Ï´Ù. ÇÏÁö¸¸ ¹Ýº¹ÀûÀÎ ¾î¶² ÀÛ¾÷À» ÅëÇØ¼ Àú¿Í ºñ½ÁÇÑ ÀÛ¾÷ÀÌ ¸¹ÀÌ ¹ß»ýÇÏ°Ô µÈ´Ù¸é ¹®Á¦°¡ µË´Ï´Ù. Àú°Ô ¾î°¼ Ŭ·ÎÀúÀΰ¡? ÇϽô ºÐµéÀÌ °è½ÇÁöµµ ¸ð¸£°Ú½À´Ï´Ù. ¿Ö³ÄÇϸé el.onclick ÀÌ window.el.onclick À̶ó¸é ±×·² ¼ö ÀÖ½À´Ï´Ù¸¸,
ÀÌ·± °æ¿ì¿¡´Â ¸í¹éÈ÷ Ŭ·ÎÀú°¡ µË´Ï´Ù. ¹°·Ð window.el µµ »ç½Ç»ó DOM¿¡ Á¢±ÙÇÑ °ÍÀ̱⠶§¹®¿¡ »ç½Ç»ó ÀÚ¹Ù½ºÅ©¸³Æ®·Î ¸í¸íµÈ °ÍÀÌ¶ó º¸±â´Â Èûµì´Ï´Ù. ¹«½¼ ¸»Àΰ¡ Çϸé
ÀÌ·¸°Ô ÇÏ¿©µµ 'test' ¶ó´Â ¹®¼°³Ã¼(element)´Â ¿©ÀüÈ÷ À͸íÇÔ¼ö¸¦ °®°í ÀÖ½À´Ï´Ù. ¾Õ¼µµ ¾ð±ÞÇÏ¿´Áö¸¸, ÀÚ¹Ù½ºÅ©¸³Æ®´Â °´Ã¼ ÂüÁ¶¸¦ Çϱ⠶§¹®¿¡ ¾î´À Çϳª¶óµµ ÂüÁ¶°¡ µÇ°í ÀÖ´Â °´Ã¼´Â ¸Þ¸ð¸®¿¡¼ ¼ö°Å°¡ µÇÁö ¾Ê½À´Ï´Ù. ±×·¸Áö¸¸ Ŭ·ÎÀúÀÇ »ç¿ëÀº ºÐ¸í °ü¸®¸¸ Àß ÇÑ´Ù¸é ¼Óµµ ºÎºÐ¿¡¼ Å« À̵æÀ» ¾È°ÜÁÙ ¼ö ÀÖ½À´Ï´Ù.
À§ ¿¹Á¦¿¡¼ °¢°¢ ´ÙÀ½°ú °°Àº ¼³Á¤À¸·Î ½ÇÇèÀ» ÇØº¸½Ã¸é ¾Ë°Ô µÇ½Ç °Ì´Ï´Ù. 1) case1 ÁÖ¼®Ã³¸® 2) case 1, 3 ÁÖ¼®Ã³¸® 3) case 2 ÁÖ¼®Ã³¸® ºê¶ó¿ìÀú º°·Î »óȲÀÌ ´Ù¸£±â´Â ÇϰÚÁö¸¸ º¸Åë window.i ½ÄÀ¸·Î Á¢±ÙÇÏ´Â °Í º¸´Ù Ŭ·ÎÀú°¡ ºü¸¦ °ÍÀÔ´Ï´Ù. (ÇØº¸½Ã¸é ¾Æ½Ã°ÚÁö¸¸ IE ¤Ô¤µ¤Î¤µ ¼Ò¸® ³ª¿É´Ï´Ù.) ¶Ç ºê¶ó¿ìÀú¿¡ µû¶ó¼ Ŭ·ÎÀúº¸´Ù Àü¿ª i¸¦ ÂüÁ¶ÇÏ´Â °Ô ´õ ºü¸¥ °æ¿ìµµ ÀÖ½À´Ï´Ù. FinÇÏ´Ùº¸´Ï Ŭ·ÎÀú±îÁö ÇÏ°Ô µÇ¾ú½À´Ï´Ù. Ŭ·ÎÀú¿¡ ´ëÇÑ ÀÌÇØ´Â Á» ¸¹ÀÌ ºÎÁ·ÇÒ ¼öµµ ÀÖ½À´Ï´Ù. ±× ºÎºÐ¿¡ ´ëÇØ¼´Â ±¸±Û¸µ¸¸ »ì¦ÇÏ¿©µµ ÃæºÐÇÑ ¾ê±âµéÀÌ ³ª¿À´Ï ±×°ÍÀ» ÂüÁ¶Çϼŵµ ÁÁÀ» °ÍÀÔ´Ï´Ù. ÀÚ¹Ù½ºÅ©¸³Æ®´Â ½ºÅ©¸³Æ®¾ð¾î¶ó´Â Ư¼º»ó °¡º±°Ô º¸ÀÏ ¼öµµ ÀÖÁö¸¸, ±× ƯÀ¯ÀÇ À¯¿¬ÇÔÀº Á¤¸» ȯ»óÀûÀ̶ó°í ÇÒ ¼ö ÀÖ½À´Ï´Ù. ´Ù¸¸ ±× À¯¿¬ÇÔÀÌ ¸¹Àº ºÒ¾ÈÁ¤¼ºÀ» ³»Æ÷Çϰí ÀÖ´Ù´Â °Í, ±×°ÍÀ» ¿°µÎÇØ¾ß ÇÒ °Í ÀÔ´Ï´Ù. ÀÌ»óÀ¸·Î º° ¿µ¾ç°¡ ¾ø´Â °Á ¾Æ´Ñ °ÁÂ, ÆÁ ¾Æ´Ñ ÆÁÀ» ¸¶Ä¡µµ·Ï ÇϰڽÀ´Ï´Ù. |
|||||||
|
|||||||


Seeker 10-02-20 10:57



Xenia-nZero 10-02-20 18:32



³¶¸Á¹é¼ö 10-02-23 15:27



Xenia-nZero 10-02-25 16:53



