|
¾È³çÇϽʴϱî? ¸ÕÀú ´©±¸´©±¸ÀÇ °áÈ¥À» ÃàÇϵ帳´Ï´Ù. ³¥³¥.
ÀÚ, ¿À´Ã ¾Ë¾Æº¸´Â °ñ¶§¸®´Â ³à¼®Àº ¹Ù·Î... À̹ø¿¡µµ ÇÁ·ÎÅäŸÀÔÀÔ´Ï´Ù.
³»Àå °´Ã¼µé. Date, String, Function, Number...µîµî
À̵éÀº °´Ã¼ ÀÚüµµ, ±×¸®°í ±× ¾È¿¡ ÇÁ·ÎÅäŸÀÔµµ ¸ðµÎ "¿ø½Ã °´Ã¼"ÁÒ.
Àú³ð°ú, ±×¸®°í Àú ÇÁ·ÎÅäŸÀÔÀ» ÅØ½ºÆ®·Î ¶âÀ¸¸é ÀÌ·¸°Ô ³ª¿ÀÁÒ.
function(){
[native code]
}
À̰йº °³¼Ò¸®¾ß?
¾î·µç, À̳༮µéÀÌ ¾î¶»°Ô µÇÀÖ´ÂÁö´Â ¾Ë ¹Ù´Â ¾Æ´ÏÁö¸¸,
ÇÏÁö¸¸ ÀÌ ¿ø½Ã°´Ã¼µµ º¹»çÇØ¼ ¾µ ¼ö ÀÖ´Â ±âÀûÀ» ¿ì¸®¿¡°Ô ¼±»çÇØ Áá½À´Ï´Ù.
¸ÕÀú, ÇÔ¼ö¸¦ ¸¸µé¶§ºÎÅÍ º¸µµ·Ï ÇϰڽÀ´Ï´Ù.
ÇÔ¼ö¸¦ ¸¸µé´Ù º¸¸é ¿©·¯°³ÀÇ ÀÎÀÚ¸¦ ¹Þ¾Æ¼ ó¸®ÇØ¾ß ÇÏ´Â °æ¿ì°¡ »ý±â°ÚÁÒ.
¹¹ ¿¹¸¦µé¾î add(1,2,3,4,5,...,100); ÀÌ·± ÇÔ¼ö°¡ ÀÖ´Ù°í Ĩ½Ã´Ù.
1ºÎÅÍ 100±îÁö ÀÎÀÚ·Î ÀÛ¼ºÇÏ´Â º´¸ÀÀº ¾ø°ÚÁö¸¸, °¡Á¤ÀÔ´Ï´Ù.¤»¤»
±×·¯¸é ÀÌ·¸°Ôµé ÀÛ¼ºÇϰÚÁÒ.
var a=0;
for(var i=0;i<arguments.length;i++){
a+=arguments[i];
}
return a;
³×. Á¤¼®ÀÔ´Ï´Ù. ¹¹ ÈñÇÑÇÏ°Ô Äڵ带 ÀÛ¼ºÇصµ µÇÁö¸¸, Á¤¼®Àº Á¤¼®ÀÔ´Ï´Ù.
ÇÏÁö¸¸ ÀÌ·± °æ¿ì·Î ÀÛ¼ºÇÏ´Ù º¸¸é ¾Æ¸¶ ´ëºÎºÐ ÀÌ·¸°Ôµé »ý°¢ÇÒ °Ì´Ï´Ù.
"¾ÆÇÏ, arguments Áö¿ªº¯¼ö´Â ¹è¿À̾ú±¸³ª..."
ÀÌ·¸°Ô ÇÏ¸é¼ arguments instanceof Array ÇØºÃ´õ´Ï false.
±»ÀÌ ±×°Å ¾ÈÇØµµ arguments.concat(new Array(101,102)); ÇØºÃ´õ´Ï ¿¡·¯.
Á¤ÀÛ length ¼Ó¼ºÀº Àִµ¥.. ÀÌ°Ô ´Ù... ¹¹¾ß À̰Å.
¹è¿ÀÎÁö ²Å»ç¸®°´Ã¼ÀÎÁö À̰Š¿µ.. ÀÌ·¸°Ô ½Ç¸ÁÇϼ̴ø ºÐµé ¸¹À¸½Ç °Ì´Ï´Ù.
ÇÏÁö¸¸ ¿äÁò ±×·±°É·Î ¸Ó¸®¾ÆÆÄÇÒ ÇÊ¿ä ¾øÀݾƿä.
¿ì¸® ¸¶À½¼Ó¿¡ ¶óÀ̺귯¸®°¡ ÀÖÀݾƿä~
¶óÀ̺귯¸®·Î ÇÑÁÙ ÄÚµåÇÏ´Â ½Ã´ë¿¡ »ç´Â°Ô ¿ì¸®°¡ ÇູÇѰ̴ϴÙ~
YMCA~
prototype ¿¡´Â Object.extend ÇÔ¼ö·Î,
jQuery¿¡´Â $.extend ÇÔ¼ö¸¦ ÅëÇØ °´Ã¼¸¦ È®ÀåÇսôÙ.
Object.extend(arguments,Array.prototype);
ÀÌ·¸°Ô Çϸé ArrayÀÇ µ¿Àû ¸â¹öµéÀ» arguments·Î ¿Å°ÜÁö°Ô µË´Ï´Ù.
ÀÌ·¸°Ô Çϸé arguments´Â ¹è¿ÀÇ ¿ªÇÒÀ»... ¼öÇàÇÒ ¼ö ÀÖÀ»±î?
¾Æ·¡¿¡ Á¦°¡ ÄݹéÇÔ¼ö·Î ´ñ±ÛÀ» ´Ü °Å º¸¼Ì½À´Ï±î?
¿©±â ±× Áõ¸íÀÌ ÀÖ½À´Ï´Ù.
function callback(a, b) {
alert(a + b);
}
function caller(func) {
this.called = 'you';
if (func.apply === Function.prototype.apply) {
arguments.shift = Array.prototype.shift;
arguments.shift().apply(this, arguments);
}
}
caller(callback, 1, 2);
¾îÀÚÇÇ shift ÇÔ¼ö¸¸ ¾µ°Å´Ï±î ÀÌ °æ¿ì´Â shift ¸â¹ö¿¡ ¹è¿ shift µ¿Àû ÇÔ¼ö¸¦ ³Ö¾ú½À´Ï´Ù.
¿¹. ÀÌ°Ç ºÐ¸íÈ÷ ¿ø½Ã °´Ã¼ÁÒ. Á¦°¡ ¾Æ±î ¸»ÇßÁö¸¸ ¿ø½Ã°´Ã¼´Â º¹»ç µË´Ï´Ù.
ÀÌ¹Ì ¸¹Àº ºÐµéÀÌ ¾Ë°í ÀÖ°ÚÁÒ? ¸¹ÀÌµé ¿ø½Ã°´Ã¼µé ¸¾´ë·Î Á¶Á¾ °¡´ÉÇϴٴ°Å.
±×·¡ºÃÀÚ ÇØ´ç ÆäÀÌÁö ¶Ç´Â ±× ÀÚ¹Ù½ºÅ©¸³Æ® ÆÄÀÏ ³»¿¡ ÇÑÁ¤µÈ´Ù´Â °ÅÁö¸¸.
¹è¿ shift ÇÔ¼ö´Â ¹è¿ÀÇ Ã¹ ÀÚ¸® °´Ã¼¸¦ »©¼ ¹Ð°í ±× ùÀÚ¸® °´Ã¼¸¦ ¹ÝȯÇÏ´Â ÇÔ¼öÀÔ´Ï´Ù.
¸¸¾à shift ÇÔ¼öÀÇ ¸®ÅϰªÀ» ¸ø¹Þ¾Ò´Ù¸é ±×¶§ºÎÅÍ´Â ¹è¿ ùÀÚ¸®¿¡ ÀÖ´ø °´Ã¼´Â ¿µ¿µ ¾È³ç~ ÀÌ·¸°Ô µÇ´Â°ÅÁÒ.
¾î·µç, ÀÌ °´Ã¼¿¡ shift ÇÔ¼ö¸¦ ½ÇÇàÇϴϱî.. µÇ³×¿ä?
À̰й¹.. ³Ê ¹è¿À̾ú¾î?
°á±¹ arguments º¯¼ö´Â ¹è¿À̱ä ÇÕ´Ï´Ù. ¹è¿ ¿ªÇÒÀº ÇÏÁö¸¸...
¹è¿¾Æ´Ñ ¹è¿... Çæ... ¹¹Áö...
ÀÚ, °á·ÐÀûÀ¸·Î ¸»ÇÏÀÚ¸é ¿ø½Ã °´Ã¼¸¦ Ȱ¿ëÇØ¼ ºÎÁ·ÇÑ °´Ã¼¸¦ 2% ä¿ï ¼ö ÀÖ´Ù´Â
ÀÌ ¾öû³ªÁöµµ ¾ÊÀº º°°Å ¾Æ´Ñ »ç½ÇÀÌ °ñ¶§¸®±â ¶§¹®¿¡ ÀÌ·¸°Ô ÆÁÀ¸·Î ¿Ã·È½À´Ï´Ù.
´ÙÀ½ °ñ¶§¸®´Â ÀÚ½º´Â ¾î¶»°Ô ÇØ¸é °ñ¶§¸±±î ¿¬±¸ÇÏ´Â ÂÊÀ¸·Î ÇØº¸µµ·Ï ÇϰڽÀ´Ï´Ù.
¾È³çÇϽʴϱî? ¸ÕÀú ´©±¸´©±¸ÀÇ °áÈ¥À» ÃàÇϵ帳´Ï´Ù. ³¥³¥.
ÀÚ, ¿À´Ã ¾Ë¾Æº¸´Â °ñ¶§¸®´Â ³à¼®Àº ¹Ù·Î... À̹ø¿¡µµ ÇÁ·ÎÅäŸÀÔÀÔ´Ï´Ù.
³»Àå °´Ã¼µé. Date, String, Function, Number...µîµî
À̵éÀº °´Ã¼ ÀÚüµµ, ±×¸®°í ±× ¾È¿¡ ÇÁ·ÎÅäŸÀÔµµ ¸ðµÎ "¿ø½Ã °´Ã¼"ÁÒ.
Àú³ð°ú, ±×¸®°í Àú ÇÁ·ÎÅäŸÀÔÀ» ÅØ½ºÆ®·Î ¶âÀ¸¸é ÀÌ·¸°Ô ³ª¿ÀÁÒ.
function(){
[native code]
}
À̰йº °³¼Ò¸®¾ß?
¾î·µç, À̳༮µéÀÌ ¾î¶»°Ô µÇÀÖ´ÂÁö´Â ¾Ë ¹Ù´Â ¾Æ´ÏÁö¸¸,
ÇÏÁö¸¸ ÀÌ ¿ø½Ã°´Ã¼µµ º¹»çÇØ¼ ¾µ ¼ö ÀÖ´Â ±âÀûÀ» ¿ì¸®¿¡°Ô ¼±»çÇØ Áá½À´Ï´Ù.
¸ÕÀú, ÇÔ¼ö¸¦ ¸¸µé¶§ºÎÅÍ º¸µµ·Ï ÇϰڽÀ´Ï´Ù.
ÇÔ¼ö¸¦ ¸¸µé´Ù º¸¸é ¿©·¯°³ÀÇ ÀÎÀÚ¸¦ ¹Þ¾Æ¼ ó¸®ÇØ¾ß ÇÏ´Â °æ¿ì°¡ »ý±â°ÚÁÒ.
¹¹ ¿¹¸¦µé¾î add(1,2,3,4,5,...,100); ÀÌ·± ÇÔ¼ö°¡ ÀÖ´Ù°í Ĩ½Ã´Ù.
1ºÎÅÍ 100±îÁö ÀÎÀÚ·Î ÀÛ¼ºÇÏ´Â º´¸ÀÀº ¾ø°ÚÁö¸¸, °¡Á¤ÀÔ´Ï´Ù.¤»¤»
±×·¯¸é ÀÌ·¸°Ôµé ÀÛ¼ºÇϰÚÁÒ.
var a=0;
for(var i=0;i<arguments.length;i++){
a+=arguments[i];
}
return a;
³×. Á¤¼®ÀÔ´Ï´Ù. ¹¹ ÈñÇÑÇÏ°Ô Äڵ带 ÀÛ¼ºÇصµ µÇÁö¸¸, Á¤¼®Àº Á¤¼®ÀÔ´Ï´Ù.
ÇÏÁö¸¸ ÀÌ·± °æ¿ì·Î ÀÛ¼ºÇÏ´Ù º¸¸é ¾Æ¸¶ ´ëºÎºÐ ÀÌ·¸°Ôµé »ý°¢ÇÒ °Ì´Ï´Ù.
"¾ÆÇÏ, arguments Áö¿ªº¯¼ö´Â ¹è¿À̾ú±¸³ª..."
ÀÌ·¸°Ô ÇÏ¸é¼ arguments instanceof Array ÇØºÃ´õ´Ï false.
±»ÀÌ ±×°Å ¾ÈÇØµµ arguments.concat(new Array(101,102)); ÇØºÃ´õ´Ï ¿¡·¯.
Á¤ÀÛ length ¼Ó¼ºÀº Àִµ¥.. ÀÌ°Ô ´Ù... ¹¹¾ß À̰Å.
¹è¿ÀÎÁö ²Å»ç¸®°´Ã¼ÀÎÁö À̰Š¿µ.. ÀÌ·¸°Ô ½Ç¸ÁÇϼ̴ø ºÐµé ¸¹À¸½Ç °Ì´Ï´Ù.
ÇÏÁö¸¸ ¿äÁò ±×·±°É·Î ¸Ó¸®¾ÆÆÄÇÒ ÇÊ¿ä ¾øÀݾƿä.
¿ì¸® ¸¶À½¼Ó¿¡ ¶óÀ̺귯¸®°¡ ÀÖÀݾƿä~
¶óÀ̺귯¸®·Î ÇÑÁÙ ÄÚµåÇÏ´Â ½Ã´ë¿¡ »ç´Â°Ô ¿ì¸®°¡ ÇູÇѰ̴ϴÙ~
YMCA~
prototype ¿¡´Â Object.extend ÇÔ¼ö·Î,
jQuery¿¡´Â $.extend ÇÔ¼ö¸¦ ÅëÇØ °´Ã¼¸¦ È®ÀåÇսôÙ.
Object.extend(arguments,Array.prototype);
ÀÌ·¸°Ô Çϸé ArrayÀÇ µ¿Àû ¸â¹öµéÀ» arguments·Î ¿Å°ÜÁö°Ô µË´Ï´Ù.
ÀÌ·¸°Ô Çϸé arguments´Â ¹è¿ÀÇ ¿ªÇÒÀ»... ¼öÇàÇÒ ¼ö ÀÖÀ»±î?
¾Æ·¡¿¡ Á¦°¡ ÄݹéÇÔ¼ö·Î ´ñ±ÛÀ» ´Ü °Å º¸¼Ì½À´Ï±î?
¿©±â ±× Áõ¸íÀÌ ÀÖ½À´Ï´Ù.
function callback(a, b) {
alert(a + b);
}
function caller(func) {
this.called = 'you';
if (func.apply === Function.prototype.apply) {
arguments.shift = Array.prototype.shift;
arguments.shift().apply(this, arguments);
}
}
caller(callback, 1, 2);
¾îÀÚÇÇ shift ÇÔ¼ö¸¸ ¾µ°Å´Ï±î ÀÌ °æ¿ì´Â shift ¸â¹ö¿¡ ¹è¿ shift µ¿Àû ÇÔ¼ö¸¦ ³Ö¾ú½À´Ï´Ù.
¿¹. ÀÌ°Ç ºÐ¸íÈ÷ ¿ø½Ã °´Ã¼ÁÒ. Á¦°¡ ¾Æ±î ¸»ÇßÁö¸¸ ¿ø½Ã°´Ã¼´Â º¹»ç µË´Ï´Ù.
ÀÌ¹Ì ¸¹Àº ºÐµéÀÌ ¾Ë°í ÀÖ°ÚÁÒ? ¸¹ÀÌµé ¿ø½Ã°´Ã¼µé ¸¾´ë·Î Á¶Á¾ °¡´ÉÇϴٴ°Å.
±×·¡ºÃÀÚ ÇØ´ç ÆäÀÌÁö ¶Ç´Â ±× ÀÚ¹Ù½ºÅ©¸³Æ® ÆÄÀÏ ³»¿¡ ÇÑÁ¤µÈ´Ù´Â °ÅÁö¸¸.
¹è¿ shift ÇÔ¼ö´Â ¹è¿ÀÇ Ã¹ ÀÚ¸® °´Ã¼¸¦ »©¼ ¹Ð°í ±× ùÀÚ¸® °´Ã¼¸¦ ¹ÝȯÇÏ´Â ÇÔ¼öÀÔ´Ï´Ù.
¸¸¾à shift ÇÔ¼öÀÇ ¸®ÅϰªÀ» ¸ø¹Þ¾Ò´Ù¸é ±×¶§ºÎÅÍ´Â ¹è¿ ùÀÚ¸®¿¡ ÀÖ´ø °´Ã¼´Â ¿µ¿µ ¾È³ç~ ÀÌ·¸°Ô µÇ´Â°ÅÁÒ.
¾î·µç, ÀÌ °´Ã¼¿¡ shift ÇÔ¼ö¸¦ ½ÇÇàÇϴϱî.. µÇ³×¿ä?
À̰й¹.. ³Ê ¹è¿À̾ú¾î?
°á±¹ arguments º¯¼ö´Â ¹è¿À̱ä ÇÕ´Ï´Ù. ¹è¿ ¿ªÇÒÀº ÇÏÁö¸¸...
¹è¿¾Æ´Ñ ¹è¿... Çæ... ¹¹Áö...
ÀÚ, °á·ÐÀûÀ¸·Î ¸»ÇÏÀÚ¸é ¿ø½Ã °´Ã¼¸¦ Ȱ¿ëÇØ¼ ºÎÁ·ÇÑ °´Ã¼¸¦ 2% ä¿ï ¼ö ÀÖ´Ù´Â
ÀÌ ¾öû³ªÁöµµ ¾ÊÀº º°°Å ¾Æ´Ñ »ç½ÇÀÌ °ñ¶§¸®±â ¶§¹®¿¡ ÀÌ·¸°Ô ÆÁÀ¸·Î ¿Ã·È½À´Ï´Ù.
´ÙÀ½ °ñ¶§¸®´Â ÀÚ½º´Â ¾î¶»°Ô ÇØ¸é °ñ¶§¸±±î ¿¬±¸ÇÏ´Â ÂÊÀ¸·Î ÇØº¸µµ·Ï ÇϰڽÀ´Ï´Ù.
|