´Ù¸¥ Function °³Ã¼ÀÇ ¸Þ¼µå¸¦ Àû¿ëÇÏ¿© ±× °³Ã¼¸¦ ÇöÀç °³Ã¼·Î ´ëüÇÑ´Ù.
[functionObj].apply([thisObj[,arguArray]])
[function] apply([thisObj[:Object][,arguArray[:{Array|arguments}]]])
arguArray°¡ À¯È¿ÇÑ ¹è¿º¯¼öÀ̳ª arguments °³Ã¼°¡ ¾Æ´Ï¸é TypeError°¡ ¹ß»ýÇÑ´Ù.
arguArray³ª thisObj°¡ Á¦°øµÇÁö ¾ÊÀ¸¸é Global °³Ã¼°¡ thisObj·Î »ç¿ëµÇ°í Àμö´Â Àü´ÞµÇÁö ¾Ê´Â´Ù.
¸¸ÀÏ thisObj¿Í arguArray°¡ ¸ðµÎ ¾øÀ¸¸é, Global.ObjectÀÇ Àü´Þ¿¡ thisObj°¡ arguments ¾øÀÌ Àü´ÞµÈ´Ù.
apply ¸Þ¼µå´Â ±â´ÉÇÔ¼ö¸¦ È£ÃâÇÒ ¼ö ÀÖ°Ô ÇÏ°í, Å°¿öµå this´Â ±× ±â´ÉÇÔ¼ö ¼Ó¿¡¼ ÂüÁ¶µÈ´Ù. thisObj´Â °³Ã¼À̾î¾ß ÇÏ°í, È£ÃâµÈ ±â´ÉÇÔ¼ö ¼Ó¿¡¼ this´Â thisObj °³Ã¼¸¦ ÂüÁ¶ÇÑ´Ù. apply ¸Þ¼µåÀÇ Àμö·Î ³ª¿À´Â arguArray´Â ¹è¿º¯¼öÀ̸ç, ÀÌ ¹è¿º¯¼öÀÇ °¢ ¿ä¼Ò´Â È£ÃâµÇ´Â ±â´ÉÇÔ¼ö¿¡ Àü´ÞµÈ´Ù. ÀÌ arguArray´Â ¹è¿º¯¼ö ¹®ÀÚ¿À̰ųª ±â´ÉÇÔ¼öÀÇ arguments ¹è¿º¯¼ö °³Ã¼ÀÌ´Ù. apply ¸Þ¼µå´Â °³Ã¼ÀÇ Àü´ÞÀ» µ¿±âÈ¿¡ »ç¿ëÇÒ ¼ö ÀÖ´Ù.
callPerson ±â´ÉÇÔ¼ö´Â ÀÚüÀÇ Àμö·Î ¹ÞÀº IdNumb¸¦ Æ÷ÇÔÇÏ¿©, apply ¸Þ¼µå·Î Person ±â´ÉÇÔ¼ö¸¦ È£ÃâÇÏ°í ¹è¿º¯¼ö¸¦ Àü´ÞÇÑ´Ù.
µû¶ó¼ Person ±â´ÉÇÔ¼ö ¼Ó¿¡¼´Â this Å°¿öµå´Â Person °¡ ¾Æ´Ï¶ó callPerson °³Ã¼¸¦ ÂüÁ¶ÇÑ´Ù.
ÀÌ ¹æ½ÄÀ¸·Î callPerson °³Ã¼´Â ±× ¼Ó¼ºµéÀ» Person °³Ã¼¿¡ Àü´ÞÇÑ´Ù. ÇÒ´çµÈ ¼Ó¼ºÀº myPerson °³Ã¼¿¡ ¹Ý¿µµÈ´Ù.
<SCRIPT> function Person(pName,gender,birth){ // ±â´ÉÇÔ¼ö¸¦ ¸¸µç´Ù. Person Àº ±â´ÉÇÔ¼ö °³Ã¼ÀÌ´Ù. this.pName=pName; // ¹ÞÀº Àμö¸¦ °³Ã¼ ¼Ó¼º¿¡ ÇÒ´çÇÑ´Ù. this ´Â callPerson ±â´ÉÇÔ¼ö °³Ã¼(myPerson)¸¦ ÂüÁ¶ÇÑ´Ù. this.gender=gender; this.birth=birth; } function callPerson(IdNumb,pName,gender,birth){ // ±â´ÉÇÔ¼ö¸¦ ¸¸µç´Ù. this.IdNumb=IdNumb; // ¹ÞÀº Àμö¸¦ °³Ã¼ ¼Ó¼º¿¡ ÇÒ´çÇÑ´Ù. Person.apply(this,new Array(pName,gender,birth)); // ¼Ó¼ºµéÀÇ ¹è¿º¯¼ö¸¦ ±â´ÉÇÔ¼ö Person¿¡ Àü´ÞÇÑ´Ù. } myPerson=new callPerson(12345,'È«±æµ¿','³²',1900); document.write('È£ÃâÇÑ »ç¶÷Àº ('+myPerson.pName +', '+myPerson.gender +', '+myPerson.birth +')ÀÌ´Ù.') </SCRIPT>