SchoolZone
ȸ¿ø°¡ÀÔ | | ȸ¿øÇýÅÃ
[¾Ë°í¸®Áò] ÀÚ¹Ù½ºÅ©¸³Æ®ÀÇ °´Ã¼¿¡ ´ëÇØ¼­
±Û¾´ÀÌ 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 °´Ã¼°¡ ±¸¼ºµÇ±â ¶§¹®ÀÔ´Ï´Ù.


    Number; // function Number() { [native code] }
    Number = {};
    Number; // Object {}
    var q = 1;
    q; // 1
    typeof q; // "number"
    q.constructor === (1).constructor; // true
    Number = (1).constructor;
    Number; // function Number() { [native code] }


Áï Host ½ºÅ©¸³Æ®¿¡ ÀÇÇØ¼­ name ÀÌ Host·Î ³Ñ¾î°¥ ¼ö´Â ÀÖÁö¸¸ ±× ÀÚü°¡ ¾ø¾îÁö´Â °ÍÀº ¾Æ´Õ´Ï´Ù. ±×·¸±â ¶§¹®¿¡ Number¸¦ »õ·Î ÇÒ´çÇÑ´Ù°í ÇØµµ ¾Æ·¡¿Í °°Àº °Ô °¡´ÉÇÕ´Ï´Ù.


    Number.prototype.multi = function(m) { return this * m; };
    Number = {};
    var q = 5;
    q.constructor.adding = function (a) { return this + a; }
    Number = (1).constructor;
    q.multi(5); // 25
    var w = 6;
    w.multi(5); // 30
    w.adding(4); //10
    Number; // function Number() { [native code] }


ÀÌ°Ô °¡´ÉÇÑ ÀÌÀ¯´Â prototypeÀ» ÅëÇØ¼­ È®ÀåµÈ ±â´ÉÀº built-in °´Ã¼°¡ È®ÀåµÇ°í native °´Ã¼´Â name(Number, String, Object µîµî)ÀÌ ¾ø¾îÁø´Ù°í ¹Ù²îÁö´Â ¾Ê½À´Ï´Ù. À̰ÍÀ» °£´ÜÇÑ ¿¹·Î ÀÌÇØ¸¦ ÇØº¸ÀÚ¸é ¾Æ·¡¿Í °°½À´Ï´Ù.


    var obj = function () { this.a = 1; this.b = 'a'; };
    var o = new obj;
    obj = null;
    o.constructor; // function () { this.a = 1; this.b = 'a'; };
    var p = new o.constructor;
    p.constructor === o.constructor; // true


¿ì¸®°¡ °¡²û ÇÁ·Î±×·¥À» Á¦ÀÛÇϸ鼭 ÇÔ¼ö·Î Àü´Þ¹ÞÀº ÀÎÀÚ, ¶Ç´Â ÂüÁ¶ÇÏ´Â º¯¼öÀÇ °ªÀ» È®ÀÎÇÏ´Â °úÁ¤¿¡¼­ ¸¹ÀÌ »ç¿ëÇÏ´Â °Ô 'typeof' ¿Í '===', '==' °¡ ÀÖ½À´Ï´Ù. ÀÌÁß¿¡¼­ ¿ì¸®¸¦ È¥µ¿ÇÏ°Ô ÇÏ´Â °ÍÀÌ 'typeof' ÀÔ´Ï´Ù.


    var x = [1, 2, 3];
    typeof x; //"object"
    x instanceof Array; // true
    x instanceof Object; // true


¿ì¸®´Â x¸¦ ¹è¿­·Î ¼±¾ðÇϰí x°¡ ¹è¿­ÀÌ ¸Â´ÂÁö È®ÀÎÇϱâ À§Çؼ­ typeof·Î Array°¡ ³ª¿À±æ ±â´ëÇÏÁö¸¸ object°¡ ³ª¿É´Ï´Ù. Dateµµ ¸¶Âù°¡Áö·Î "object"°¡ ¹ÝȯÀÌ µË´Ï´Ù. ±× ÀÌÀ¯´Â ECMA¿¡ Á¤ÀÇµÈ TypeÀÌ
    
    Undefined, Null, Boolean, String, Number, Object, Function À̱⠶§¹®ÀÔ´Ï´Ù.
    
Áï ½±°Ô ÀÌÇØÇÏÀÚ¸é, º¯¼ö¿¡ ÇÒ´çµÇ´Â °ªÀÇ Á¾·ù´Â À§ÀÇ TypeÀ» ¹þ¾î³ªÁö ¾Ê´Â´Ù´Â °ÍÀÔ´Ï´Ù. ±×·±µ¥ ¿©±â¼­ ¶Ç Çϳª ¹®Á¦°¡ µÇ´Â °ÍÀÌ Null ÀÔ´Ï´Ù.


    var x = null;
    var y;
    typeof x; // "object"
    typeof y; // "undefined"
    x instanceof Object; // false


x¸¦ null·Î ÇÒ´çÀ» Çϸé TypeÀÌ "null"·Î ³ª¿Í¾ß Çϴµ¥ "object"·Î ³ª¿É´Ï´Ù. ±×·¡¼­ ÀνºÅϽº¸¦ ¾Ë¾Æº¸¸é Object´Â ¾Æ´Ï¶ó°í ÇÕ´Ï´Ù. ÀÌ ºÎºÐ¿¡ ´ëÇØ¼­´Â ECMA¿¡¼­µµ "null"·Î ¹Ù²ÙÀÚ´Â ÀǰßÀÌ ³ª¿Ô¾ú´ø °Í °°Àºµ¥ ±×³É 'typeof null' == "object"·Î Çϱ⵵ Çß´Ù°í ÇÕ´Ï´Ù.

ÀÚ¹Ù½ºÅ©¸³Æ®ÀÇ ¸ðµç º¯¼öÀÇ °ªÀº °´Ã¼ÀÔ´Ï´Ù. ±× °´Ã¼ÀÇ TypeÀº À§¿¡¼­ ¾ð±ÞÇß´ø °ÍµéÀÔ´Ï´Ù. ¹°·Ð ±×°ÍÀº TypeÀ̰í Á¤È®ÇϰԴ Built-in °´Ã¼°¡ µÇ°ÚÁÒ. ÀÌ Built-in °´Ã¼°¡ µÇ´Â °Ç, °´Ã¼°¡ »ý¼ºµÇ´Â °úÁ¤¿¡ Class Type À¸·Î ¼³Á¤µË´Ï´Ù. ¹°·Ð ÀÚ¹Ù½ºÅ©¸³Æ® ·¹º§ÀÇ Class´Â ¾Æ´Õ´Ï´Ù.

ÀÌ·¸°Ô ECMA ±â¼ú·¹º§¿¡¼­ »ý¼ºµÇ´Â °´Ã¼µé¿¡ ´ëÇØ¼­´Â ¸î °¡Áö ¼³Á¤À» ÇÒ ¼ö ÀÖ½À´Ï´Ù. ¼öÁ¤ÀÌ °¡´ÉÇѰ¡? °°Àº °Íµé ¸»ÀÔ´Ï´Ù. ¿¹¸¦ µéÀÚ¸é


    Number.MIN_VALUE == 5E-324


¶ó°í ³ª¿É´Ï´Ù. ¼Ò¼öÁ¡ ¾Æ·¡·Î 0ÀÌ 324°³ Çϰí 5·Î ³¡³ª´Â ¾î¸¶¾î¸¶ ÇÏ°Ô ÀÛÀº ¼ýÀÚÀÔ´Ï´Ù. ¿ì¸®°¡ ¾Ë°í ÀÖ´Â ÀÚ¹Ù½ºÅ©¸³Æ® ¼³Á¤À̶ó¸é Àú MIN_VALUE¸¦ ¸ø¹Ù²Ü °Íµµ ¾ø½À´Ï´Ù. ¿Ö³Ä¸é ÀÚ¹Ù½ºÅ©¸³Æ® ·¹º§¿¡¼­ protect Ű¿öµåµµ ¾ø°í constant ¼³Á¤µµ ¾È µÇ±â ¶§¹®ÀÔ´Ï´Ù. ±×·¡¼­ ´ÙÀ½°ú °°ÀÌ


    Number.MIN_VALUE = 0;


ÇÏ°Ô µÇ¸é ¿À·ù¾øÀÌ ½ÇÇàÀÌ µË´Ï´Ù. ÇÏÁö¸¸


    Number.MIN_VALUE; // 5E-324


ÀÌ·¯ÇÑ °á°ú°¡ ³ª¿É´Ï´Ù. ÀÌó·³ ÀÚ¹Ù½ºÅ©¸³Æ® ·¹º§¿¡¼­ typeof ·Î´Â "number" ÀÌÁö¸¸ native °´Ã¼ÀÎ Number¸¦ ÀνºÅϽº ÇÏÁö ¾Ê°í built-in °´Ã¼ Number·Î ¹Ù·Î »ý¼ºµÇ´Â °æ¿ì°¡ ÀÖ½À´Ï´Ù. Built-in °´Ã¼´Â À§ÀÇ ¿¹¿¡¼­¿Í °°ÀÌ Á» ´õ ÀÚ¼¼ÇÑ ¼³Á¤ÀÌ °¡´ÉÇÕ´Ï´Ù. ÇÏÁö¸¸ ±×°ÍÀº °¢ ºê¶ó¿ìÀúÀÇ ½ºÅ©¸³Æ® ¿£Áø Ãø¸é¿¡¼­ ÀϾ´Â ÀÏÀÌ´Ï ½ÇÁ¦ ÀÚ¹Ù½ºÅ©¸³Æ®¸¦ ´Ù·ç´Â ¿ì¸®¿Í´Â º° Àο¬Àº ¾ø½À´Ï´Ù.

¾Õ¼­ Number, String, Object µî°ú °°Àº Native °´Ã¼¿Í Built-in °´Ã¼°¡ ´Ù¸£´Ù°í ÇÏ¿´´Âµ¥, Á» ´õ ÀÚ¼¼È÷ ¾Ë¾Æº¸µµ·Ï ÇϰڽÀ´Ï´Ù. Äڵ尡 ±æ°í ÁöÀúºÐÇØ º¸À̽ÇÁö ¸ð¸£°ÚÁö¸¸, firebug³ª Å©·Ò µð¹ö±×Åø, ¿ÀÆä¶ó °³¹ßÀÚ ÆÐ³Î µî¿¡¼­ ÇØº¸½Ã¸é ÀÌÇØÇϱ⠽¬¿ì½Ç °Ì´Ï´Ù.


    /* native object, Number È®ÀÎ */
    Number; // Number() ==> function Number() { [native code] }
    
    /* a ¸¦ native Number ¸¦ ÀνºÅϽº */
    var a = new Number(55);
    a; // 55 { }
    typeof a; // "object"
    a instanceof Number; // true
    a instanceof Object; // true
    
    /* b ¸¦ ÀνºÅϽº ¾øÀÌ ¼±¾ð */
    var b = 55;
    b; // 55
    typeof b; // "number"
    b instanceof Number; // false
    b instanceof Object; // false
    
    /* a¿Í b¸¦ ºñ±³ */
    a == b; // true
    a.constructor === b.constructor; // true
    
    /* aÀÇ ÇÁ·ÎÆÛƼ È®Àå ¹× È®ÀÎ */
    a[0] = 'This is a number object';
    a[1] = 'Instance of Number';
    a; // 55 { 0: 'This is a number Object', 1: 'Instance of Number' }
    
    a == b // true
    
    /* native object, Number ÀÇ ÇÁ·ÎÅäŸÀÔ ¼³Á¤ */
    Number.prototype.multi = function(m) { return m * this; };
    
    /* a, b È®ÀÎ ¹× È®ÀåµÈ ¸Þ¼Òµå ½ÇÇà¿©ºÎ È®ÀÎ */
    a; // 55 { 0: 'This is a number Object', 1: 'Instance of Number', multi: function() }
    b; // 55
    a.multi(5); // 275
    b.multi(5); // 275
    
    /* native object, Number ÀÇ ÇÁ·ÎÅäŸÀÔ ¼³Á¤ */
    Number.prototype.push = Array.prototype.push;
    
    /* a È®ÀÎ */
    a.length = 2;
    a.push('This is pushed text');
    a; // 55 { 0: 'This is a number Object',
            1: "Instance of Number",
            2: :"This is pushed text",
            length: 3,
            multi: function() ,
            push: function() }
    /* b È®ÀÎ */
    b.push('This is b!');
    b; // 55
    typeof b[0] == "undefined"; // true


a ´Â native Number °´Ã¼¸¦ ÀνºÅÏÆ® Çß°í b´Â ±×·¸Áö ¾Ê¾Ò½À´Ï´Ù. ±×·¸Áö¸¸ °á±¹ µÑÀº °°Àº ±â´ÉÀ¸·Î µ¿ÀÛÀ» ÇÕ´Ï´Ù. °è»êµµ µÇ°í ¸»ÀÔ´Ï´Ù. native °´Ã¼·Î ÀνºÅϽº ÇÏ°Ô µÈ a´Â È®ÀåÀÌ °¡´ÉÇÑ °´Ã¼·Î ¹ÝȯµÈ ¹Ý¸é b´Â È®ÀåÀÌ µÉ ¼ö ¾ø½À´Ï´Ù. ÀÌÀ¯´Â native Number °¡ Object¸¦ ÀνºÅϽº ÇÏ¿´±â ¶§¹®ÀÔ´Ï´Ù.

native¸¦ ÀνºÅϽºÇÏ°Ô µÇ¸é built-in ¼öÁØ¿¡¼­ ¼³Á¤ÀÌ µË´Ï´Ù. ÇÏÁö¸¸ ±×·¸Áö ¾ÊÀº °æ¿ì´Â ±âº» built-in ¼³Á¤ÀÌ µÇ°Ô µË´Ï´Ù. ±×·¯³ª ÀνºÅϽº¸¦ ÇÏÁö ¾ÊÀ» »Ó constructor ÇÔ¼ö¸¦ ±âº»À¸·Î »ç¿ëÇÏ¿© built-in °´Ã¼°¡ ¹ÝȯÀÌ µË´Ï´Ù. ´ÙÀ½ÀÇ ¿¹¸¦ º¸½Ã¸é


    /* º¯¼ö ¼³Á¤ */
    var a1 = new String('asdf');
    var q1 = new Number(5);
    var a2 = 'asdf';
    var q2 = 5;
    var a3 = String('asdf');
    var q3 = Number(5);
    
    /* ¹®ÀÚ¿­ º¯¼ö »ý¼ºÀÚ ¹× ÀνºÅϽº È®ÀÎ */
    a1.constructor === a2.constructor; // true
    a1.constructor === a3.constructor; // true
    a1 instanceof String; // true
    a2 instanceof String; // false
    a3 instanceof String; // false
    
    /* ¼ýÀÚ º¯¼ö »ý¼ºÀÚ ¹× ÀνºÅϽº È®ÀÎ */
    q1.constructor === q2.constructor; // true
    q1.constructor === q3.constructor; // true
    q1 instanceof Number; // true
    q2 instanceof Number; // false
    q3 instanceof Number; // false
    
    /* ¹®ÀÚ¿­ º¯¼ö ÇÁ·ÎÆÛƼ(¶Ç´Â ¸Þ¼Òµå) È®Àå */
    a1.push = a2.push =a3.push = Array.prototype.push;
    a1.push; // function push() { [native code] }
    a2.push; // undefined;
    a3.push; // undefined;
    
    /* ¹®ÀÚ¿­ º¯¼ö length ÇÁ·ÎÆÛƼ °ª ´Ù·ç±â */
    a1.length; // 4
    a2.length; // 4
    a3.lengthl; // 4
    a1.length = 0;
    a1.length; // 4
    a2.length = 0;
    a2.length; // 4
    a3.length = 0;
    a3.length; // 4
    
    /* È®ÀåµÈ ÇÁ·ÎÆÛƼ(¶Ç´Â ¸Þ¼Òµå)·Î ½ÇÇè */
    a1.push('g');
    a1; // "asdf"
    a1.length; // 4
    
    /* ¹®ÀÚ¿­ º¯¼ö Á÷Á¢ Á¢±Ù ¹× º¯°æ */
    a1[0] = 'g';
    a1[0]; // 'a'
    
    /* ¼ýÀÚ º¯¼ö ÇÁ·ÎÆÛƼ(¶Ç´Â ¸Þ¼Òµå) È®Àå */
    q1.push = q2.push = q3.push = Array.prototype.push;
    q1.push; // function push() { [native code] }
    q2.push; // undefined
    q3.push; // undefined
    
    /* ¼ýÀÚ º¯¼ö length ÇÁ·ÎÆÛƼ È®ÀÎ ¹× º¯°æ */
    q1.length; // undefined
    q1.length = 3;
    q1.length; // 3
    
    q2.length; // undefined
    q2.length = 3;
    q2.length; // undefuned
    
    q3.length; undefined
    q3.length = 3;
    q3.length; // undefined
    
    /* È®ÀåµÈ ¸Þ¼Òµå¸¦ »ç¿ëÇÑ °æ¿ì */
    q1.push('asdfg');
    q1; // 5 { 3: "asdfg", length: 4, push: function() }
    
    /* Á÷Á¢ Á¢±ÙÇÑ °æ¿ì */
    q1[0]; // undefined
    q1[0] = 'asdf';
    q1[0]; // 'asdf';


Áï native´Â built-in °´Ã¼¸¦ »ý¼ºÇϱâ À§ÇÑ class ¶ó°í º¸½Ã¸é µË´Ï´Ù. ´ë½Å ÀÚ¹Ù½ºÅ©¸³Æ® ·¹º§¿¡¼­ nativeÀÇ ÀνºÅϽº ¿©ºÎ¿¡ µû¶ó¼­ »ý¼º Á¶°ÇÀÌ ´Þ¸®Áö´Â °ÍÀÔ´Ï´Ù. ±×·¸±â ¶§¹®¿¡ ÀÚ¹Ù½ºÅ©¸³ »ó¿¡¼­ var a = 1; ÇßÀ» °æ¿ì a ´Â °´Ã¼°¡ ¾Æ´Ñ °Í °°Áö¸¸ ¿°¿¬È÷ construct¸¦ °¡Áø °´Ã¼¶ó°í ÇÒ ¼ö ÀÖ½À´Ï´Ù.

°£´ÜÈ÷ Áö±Ý±îÁöÀÇ ³»¿ëÀ» ¿ä¾àÇÏÀÚ¸é, ÀÚ¹Ù½ºÅ©¸³Æ®ÀÇ ¸ðµç º¯¼öÀÇ °ªÀº °´Ã¼ÀÌ¸ç ±×°ÍÀº ºê¶ó¿ìÀú ¿£ÁøÀÇ(ECMA ±â¼ú·¹º§) ¼³Á¤À» µû¸£¸ç, native °´Ã¼¸¦ ÀνºÅϽº ÇÏ´À³Ä, ÇÏÁö ¾Ê´À³Ä¿¡ µû¶ó¼­ ¹ÝȯµÈ °´Ã¼ÀÇ È®À强 ¿©ºÎ µîÀÌ ´Þ¶óÁø´Ù. ¶ó´Â °ÍÀÔ´Ï´Ù.

ÀÌÁ¦ º°·Î µµ¿òÀÌ ¾È µÇ¾ú´ø ±×¸®°í ¹º ¼Ò¸°Áö Àß ¸ð¸£°Ú´ø built-in °´Ã¼ µîµîÀÇ À̾߱â´Â ±×³É ±×·±°¡º¸´Ù ÇÏ¸ç ³Ñ¾î°¡°í (»ç½Ç ÀÛ¼ºÇϸ鼭 Àúµµ ¿ë¾îµµ È¥µ¿µÇ°í ³»¿ëµµ È¥µ¿µÇ°í ±×·´´Ï´Ù.) °´Ã¼ ³»¿¡¼­ÀÇ ÂüÁ¶¿¡ ´ëÇØ¼­ ¾Ë¾Æº¸µµ·Ï ÇϰڽÀ´Ï´Ù.

Object Reference



ÀÚ¹Ù½ºÅ©¸³Æ®ÀÇ ±âº»°´Ã¼´Â window ÀÔ´Ï´Ù. ±×·¸±â ¶§¹®¿¡ ¿ì¸®°¡ ½ºÅ©¸³Æ®¸¦ ÀÛ¼ºÇϸ鼭 ¼±¾ðÇÏ´Â Àü¿ªº¯¼öµéÀº »ç½Ç»ó window °´Ã¼¿¡ Á¾¼Ó(bind)µË´Ï´Ù. ½±°Ô ¸»ÇÏÀÚ¸é Àü¿ª ³×ÀÓ½ºÆäÀ̽º(namespace)·Î window°¡ »ç¿ëµÈ´Ù´Â °ÍÀÔ´Ï´Ù. (»ç½Ç ³×ÀÓ½ºÆäÀ̽º¿Í´Â °³³äÀÌ ´Ù¸£´õ¶óµµ ½±°Ô »ý°¢ÇÏÀÚ´Â Àǹ̿¡¼­)


    var x = null;


°ú


    window.x = null;

    
´Â °°Àº °ÍÀÔ´Ï´Ù. ±×·¸Áö¸¸ ºê¶ó¿ìÀú º°·Î µÎ °³¸¦ ´Ù·ç´Â ¼ÓµµÀÇ Â÷ÀÌ´Â Á¦°¢°¢À̶ó´Â °É ¿°µÎÇÏ¼Å¾ß ÇÕ´Ï´Ù. ÀÌ¿Í °ü·ÃÇØ¼­´Â ¿¹Àü¿¡ ÀÛ¼ºÇÑ Speed up Javascript ¶ó´Â °Ô½Ã¹°À» ÂüÁ¶ÇÏ½Ã¸é µË´Ï´Ù.

ÀÚ¹Ù½ºÅ©¸³Æ®¿¡¼­ °´Ã¼ÀÇ ¹üÀ§´Â °´Ã¼ ±× ÀÚ½ÅÀÇ ÇÁ·ÎÆÛƼ(property)±îÁö¸¸ ÇÑÁ¤µË´Ï´Ù. ÀÌ ¸»Àº ¿ì¸®°¡ ÀÚÁÖ »ç¿ëÇÏ°Ô µÇ´Â this¿Í °ü·ÃÀÌ ÀÖ½À´Ï´Ù. Áï thisÀÇ ¹üÀ§´Â °´Ã¼ ±× ÀÚ½ÅÀ» °¡¸®Å°´Â °ÍÀÔ´Ï´Ù.


    var obj1 = { a: function() { return this.b; }, b: 'text message'};
    obj1.a(); // "text message"
    
    var obj2 = { a: { q : function() { return this.b }, b: 'child'}, b: 'parent'};
    obj2.a.q(); // 'child'


obj1ÀÇ °æ¿ì ¸Þ¼Òµå a´Â ÇÔ¼ö·Î ÇÔ¼ö ³»ºÎÀÇ this´Â obj1À» °¡¸®Åµ´Ï´Ù. ¿Ö³Ä¸é a°¡ obj1¿¡ Á¾¼ÓµÇ¾î Àֱ⠶§¹®ÀÔ´Ï´Ù. ¹Ý¸é obj2ÀÇ ¸Þ¼Òµå qÀÇ this´Â obj2°¡ ¾Æ´Ñ a¸¦ °¡¸®Åµ´Ï´Ù. º¸½Ã´Ù½ÃÇÇ q°¡ a¿¡ Á¾¼ÓµÇ¾ú±â ¶§¹®ÀÔ´Ï´Ù.

ÀÌ·¯ÇÑ Á¾¼ÓÀÇ °ü°è¿Í ±âº» ³×ÀÓ½ºÆäÀ̽º(°´Ã¼)ÀÎ window·Î ÀÎÇØ¼­ ¾Ë¸é ´ç¿¬ÇÑ °ÍÀÌ°í ¸ð¸£¸é Ȳ´çÇÑ °á°ú°¡ ³ª¿À±âµµ ÇÕ´Ï´Ù.


    (x=[].reverse)() === window; // true


[] ´Â ±âº»ÀûÀ¸·Î Array °´Ã¼À̰í reverse´Â Array ¸Þ¼Òµå ÀÔ´Ï´Ù.


    x=[].reverse;


´Â °á°úÀûÀ¸·Î x´Â reverse ÇÔ¼ö°¡ µË´Ï´Ù. ±×¸®°í ¾Õ¼­ ¸»ÇÑ¹Ù¿Í °°ÀÌ ±âº» ³×ÀÓ½ºÆäÀ̽º´Â window ÀÔ´Ï´Ù.


    x === window.x; //true
    x === Array.prototype.reverse; // true


reverse°¡ this ·Î Array °´Ã¼¸¦ ´Ù·é´Ù°í ÇÑ´Ù¸é ÇÔ¼ö ³¡¿¡ return this; ÀÌ·¸°Ô ÇÏ°Ô µÇ¸é window¿¡ ¹ÙÀÎµå µÈ x ´Â window¸¦ ¹ÝȯÇÏ°Ô µË´Ï´Ù. À̰ÍÀ» ´ÙÀ½°ú °°ÀÌ Çϸé È®½ÇÇÏ°Ô ¾Ë ¼ö ÀÖ½À´Ï´Ù.


    var b = {a:[].reverse};
    b.a() === b // true


ÀÌ °æ¿ì¿¡´Â a°¡ b¿¡ ¹ÙÀεù µÈ »óű⠶§¹®¿¡ this°¡ b¸¦ °¡¸®Å°±â ¶§¹®¿¡ b¸¦ ¹ÝȯÇÏ°Ô µË´Ï´Ù.

ÀÌ·¸°Ô µÇ´Â ÀÌÀ¯´Â ÇÁ·ÎÆÛƼ¿¡ ¿¬°áµÇ´Â ¸ðµç °ªµéÀº °´Ã¼ÀÌ°í °´Ã¼´Â »ý¼ºµÇ¾îÁø ÈÄ ÂüÁ¶°¡ µÇ¾îÁö´Â °ÍÀ̱⠶§¹®ÀÔ´Ï´Ù. ÀÌ ÂüÁ¶¿¡ ´ëÇÑ ½¬¿î ¿¹¸¦ µé¸é ¾Æ·¡¿Í °°½À´Ï´Ù.


    var arr = [1, 2, 3];
    var q = arr;
    q[0] = 4;
    q; // [4, 2, 3]
    arr; // [4, 2, 3]
    arr === q; // true


´Ü, ¼ýÀÚ³ª ¹®ÀÚ¿­, ºÎ¿ïÇüÀº °´Ã¼ ±× ÀÚ½ÅÀ» º¯°æÇÏ°Ô µÇ¹Ç·Î »õ·Î¿î °´Ã¼°¡ ÇÒ´çµÇ°í ÂüÁ¶ÀÇ ¿¬°áÀº ²÷¾îÁö°Ô µË´Ï´Ù. ±×°ÍÀº °´Ã¼³ª ¹è¿­¿¡¼­µµ ¸¶Âù°¡ÁöÀÔ´Ï´Ù.


    var q = [1, 2, 3];
    var a = q[0];
    a === q[0]; // true
    q[0] = 4;
    q; // [4, 2, 3]
    a === q[0]; // false
    
    var z = false;
    var x = z;
    z === x; // true
    z = true;
    z === x; // false


ÂüÁ¶°¡ ²÷¾îÁ³´Âµ¥ ¿Ö ´Ù¸¥ º¯¼ö´Â ¾È ²÷¾îÁ³´Â°¡ ÇÏ¸é ¾Õ¼­ built-in °´Ã¼¸¦ »ý°¢ÇÏ½Ã¸é µË´Ï´Ù. Áï º¯¼öµéÀº built-in °´Ã¼¸¦ ÂüÁ¶ÇÏ´Ù°¡ »õ·Î¿î °´Ã¼°¡ ÇÒ´çµÇ¸é ÇØ´ç built-in °´Ã¼ÀÇ ÂüÁ¶¸¦ ²÷°í »õ·Î¿î built-in °´Ã¼¸¦ ÂüÁ¶ÇÏ°Ô µË´Ï´Ù.

¾Æ½Ã°ÚÁö¸¸ ÇÔ¼öÀÇ ±â´É Áß¿¡ apply ¶ó´Â °ÍÀÌ ÀÖ½À´Ï´Ù. °£´ÜÈ÷ ¸»ÇÏÀÚ¸é ÂüÁ¶ÀÇ ¹üÀ§¸¦ °øÀ¯ÇÏ°Ô µÇ´Â °ÍÀÔ´Ï´Ù.


    var arr = [1, 2, 3];
    var obj = { a: function() { return this.length; } };
    obj.a(); // undefined
    obj.a.apply(arr); // 3


Äڵ忡¼­ º¸ÀÌ´Â ¹Ù¿Í °°ÀÌ obj °´Ã¼¿¡´Â length ÇÁ·ÎÆÛƼ°¡ ¾ø±â ¶§¹®¿¡ obj.a()¸¦ È£ÃâÇϸé undefined °¡ ¶å´Ï´Ù. ÇÏÁö¸¸ obj.a.apply(arr) ÇÏ°Ô µÇ¸é arrÀÇ length°¡ Ãâ·ÂÀÌ µË´Ï´Ù. Àú apply¸¦ ¾Æ¿¹ Á¾¼ÓÇØ¼­ ÀÌ·¸°Ôµµ ÇÒ ¼ö ÀÖ½À´Ï´Ù.


    var arr = [1, 2, 3];
    var obj = {
        a: function() {
             return (function(sl) { return this.length + sl; }).apply(arr, [this.length]);
        }
        , length: 4 };
    obj.a(); // 7


¶Ç´Â function ÀÚü¸¦ È®ÀåÇØ¼­


    var arr1 = [1, 2, 3];
    var arr2 = [4, 5, 6, 7, 8];
    var fn = function(v) { return this.length + v; };
    fn.binding = function(o) {
        var s = this;
        return function(bo) {
            return s.apply(bo ? bo : o, [this.length]);
        };
    };
    var obj = { a: fn.binding(arr1), length: 7 };
    obj.a(); // 10
    obj.a(arr2); // 12


ÀÌ·¸°Ô ÇÒ ¼öµµ ÀÖ½À´Ï´Ù. ¿©±â¼­ ÁÖÀÇÇÒ Á¡Àº fn.binding ÀÔ´Ï´Ù. ¿ì¸®°¡ ¾Æ·¡¿Í °°ÀÌ »ç¿ëÀ» ÇÏ°Ô µÈ´Ù¸é


    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À» È®ÀåÇÏ´ø ºÎºÐ¿¡¼­

    
    fn.binding = function(obj) {
        var s = this;
        return function(bo) {
            return s.apply(bo ? bo : obj, [this.length]);
        };
    };


ÀÌ ºÎºÐÀ» º¸½Ã¸é ¹ÝȯµÇ´Â ÇÔ¼ö¿¡ 's'°¡ ÀÖ½À´Ï´Ù. °á·ÐÀûÀ¸·Î


    obj.a; // function(bo) { return s.apply(bo ? bo : obj, [this.length]); }
    s; // undefined


obj.a ´Â ¸Å ½ÇÇà½Ã s ¶ó´Â ÇÔ¼ö¸¦ ½ÇÇàÇÏ°Ô µÇ´Âµ¥, ½ÇÁ¦·Î ÀÌ ÇÔ¼ö´Â Àü¿ª(global)À¸·Î ¸í½ÃµÈ »óȲÀº ¾Æ´Õ´Ï´Ù. ÇÏÁö¸¸ ÇÔ¼ö´Â ½ÇÇà½Ã¿¡ s¸¦ ÂüÁ¶ÇÒ ¼ö ÀÖ½À´Ï´Ù. º¸ÅëÀ̶ó¸é ÇÔ¼ö°¡ ¼öÇàµÈ µÚ¿¡´Â Áö¿ªº¯¼ö´Â ¾ø¾îÁö´Â °Ô ¸ÂÁö¸¸ ÀÌ °æ¿ì¿¡´Â ¹ÝȯµÇ´Â °ª¿¡¼­ Áö¿ªº¯¼ö¸¦ ÂüÁ¶Çϱ⠶§¹®¿¡ ¸Þ¸ð¸®»ó¿¡ built-in °´Ã¼°¡ ³²°Ô µË´Ï´Ù. ¹°·Ð ¾î¶² Ư¼öÇÑ ¸ñÀûÀ¸·Î °è»êµÈ, ÇÑÁ¤µÈ ¹üÀ§ ³»¿¡¼­ÀÇ Å¬·ÎÀúÀÇ »ç¿ëÀº ¸Å¿ì À¯¿ëÇÕ´Ï´Ù.

Ŭ·ÎÀúÀÇ À¯¿ëÇÔÀ̶õ ¹Ù·Î, ÀÚ¹Ù½ºÅ©¸³¿¡¼­ private ¸â¹ö(method, property)¸¦ ±¸ÇöÇϴµ¥ ÀÌ¿ëÇÒ ¼ö ÀÖ´Ù´Â °ÍÀÔ´Ï´Ù.


    var animal = function(n, a) {
        var nick = n;
        var age = a;
        var growth = function() { return ++age; }
        return {
            setNick: function(n) { nick = n; },
            getNick: function() { return nick; },
            setAge: function(a) { age = a; },
            getAge: function() { return age; },
            getAll: function() { return [nick, age]; },
            newYear: function() { return nick + ' is now ' + growth() + ' years old'; }
        };
    };
    var dog = new animal('happy', 1);
    
    dog.nick; // undefined
    dog.age; // undefined
    
    dog.nick = 'song';
    dog.nick; // "song"
    dog.getNick(); // "happy";
    dog.setNick('MungMung');
    dog.nick; // "song"
    dog.getNick(); // "MungMung"
    
    dog.newYear(); // "MungMung is now 2 years old"
    dog.getAge(); // 2


À§¿Í °°ÀÌ ±¸ÇöÀ» ÇÏ¿´À» ¶§, animal ¾ÈÀÇ nick°ú age´Â ºÐ¸í ¿ÜºÎ¿¡¼­ Á¢±ÙÇÒ ¼ö ¾ø½À´Ï´Ù. ÇÏÁö¸¸ Ŭ·ÎÀú°¡ Çü¼ºÀÌ µÇ¸é¼­ ¿ÜºÎ¿¡¼­´Â Á¢±ÙÀÌ ¾È µÇ´Â private ¸â¹ö°¡ ¸¸µé¾îÁö°Ô µË´Ï´Ù.

Ŭ·ÎÀú´Â ÀÌ·± À¯¿ëÇÔÀÌ ÀÖÀ¸¸é¼­µµ ÁÖÀǸ¦ ¿äÇÏ´Â °ÍÀº ºñ´Ü ¸Þ¸ð¸® ´©¼ö¿Í °ü·ÃµÈ ¹®Á¦¸¸ÀÌ ¾Æ´Õ´Ï´Ù. ¸Þ¸ð¸® ´©¼ö¿Í °ü·ÃµÈ À̾߱â´Â ¸¹ÀÌ µé¾îº¸¼ÌÀ» °ÍÀ̰í, ±× ÀÌÀ¯´Â Ŭ·ÎÀú°¡ GC¿¡¼­ ȸ¼ö°¡ ¾È µÇ°í, ÇØ´ç ±¸ºÐÀÌ Áö¼ÓÀûÀ¸·Î ½ÇÇàµÇ¸é¼­ °è¼ÓÇØ¼­ ½×ÀÌ°Ô µÉ ¼ö Àֱ⠶§¹®ÀÔ´Ï´Ù.

±×¸®°í ¶Ç ´Ù¸¥ ÀÌÀ¯´Â ³×ÀÌ¹Ö ÂüÁ¶, ±×·¯´Ï±î Àü¿ªº¯¼ö¸¦ ÂüÁ¶Çϱâ À§ÇØ nick ¸¦ ½è´Âµ¥, ±×°Ô Ŭ·ÎÀú¸¦ ÂüÁ¶ÇÏ´Â °æ¿ìµµ »ý±æ ¼ö ÀÖ´Ù´Â °ÍÀÔ´Ï´Ù. ¹°·Ð. window.nick ¿Í °°Àº ¹æ¹ýÀ» »ç¿ëÇÏ¿© ÇÇÇÒ ¼öµµ ÀÖ½À´Ï´Ù.

Ŭ·ÎÀú°¡ ¿ì¸®°¡ »ý°¢ÇÏÁö ¸øÇß´ø, Áï ÀǵµÇÏÁö ¾Ê°Ô ÀϾ¼­ ¸Þ¸ð¸® ¹®Á¦¸¦ ÀÏÀ¸Å°´Â °æ¿ìÀÇ ºÎºÐÀº setTimeoue ¼³Á¤À̳ª À̺¥Æ®¼³Á¤¿¡¼­ ¸¹ÀÌ ¹ß»ýÇÕ´Ï´Ù. ÀÌÀ¯´Â ¿ì¸®°¡ ÀÌ µÑ¿¡ ÇÒ´çÇÏ´Â ÇÔ¼ö°¡ ¹Ì¸® ÁöÁ¤µÈ ÇÔ¼ö¸¦ ¾²´Â °æ¿ìµµ ÀÖÁö¸¸, ±× ¶§ÀÇ »óȲ¸¶´Ù À͸íÇÔ¼ö¸¦ ÇÒ´çÇÏ´Â °æ¿ìµµ ¸¹±â ¶§¹®ÀÔ´Ï´Ù. ¿¹¸¦ µéÀÚ¸é


    var el = document.getElementById('test');
    el.onclick = function() { ¡¦¡¦ };


ÀÌ·± °æ¿ì°¡ ÀÖ´Ù°í Çϸé, Àú ÇÑ ¹øÀÇ °æ¿ì´Â º° ¹®Á¦°¡ µÉ °ÍÀÌ ¾÷½À´Ï´Ù. ÇÏÁö¸¸ ¹Ýº¹ÀûÀÎ ¾î¶² ÀÛ¾÷À» ÅëÇØ¼­ Àú¿Í ºñ½ÁÇÑ ÀÛ¾÷ÀÌ ¸¹ÀÌ ¹ß»ýÇÏ°Ô µÈ´Ù¸é ¹®Á¦°¡ µË´Ï´Ù. Àú°Ô ¾î°¼­ Ŭ·ÎÀúÀΰ¡? ÇϽô ºÐµéÀÌ °è½ÇÁöµµ ¸ð¸£°Ú½À´Ï´Ù. ¿Ö³ÄÇϸé el.onclick ÀÌ window.el.onclick À̶ó¸é ±×·² ¼ö ÀÖ½À´Ï´Ù¸¸,


    function setFn(id)
    {
        var el = document.getElementById(id);
        el.onclick = function() { alert(el.id); }
    }


ÀÌ·± °æ¿ì¿¡´Â ¸í¹éÈ÷ Ŭ·ÎÀú°¡ µË´Ï´Ù. ¹°·Ð window.el µµ »ç½Ç»ó DOM¿¡ Á¢±ÙÇÑ °ÍÀ̱⠶§¹®¿¡ »ç½Ç»ó ÀÚ¹Ù½ºÅ©¸³Æ®·Î ¸í¸íµÈ °ÍÀÌ¶ó º¸±â´Â Èûµì´Ï´Ù. ¹«½¼ ¸»Àΰ¡ Çϸé


    var el = document.getElementById('test');
    el.onclick = function() { ¡¦¡¦ };
    delete el;


ÀÌ·¸°Ô ÇÏ¿©µµ 'test' ¶ó´Â ¹®¼­°³Ã¼(element)´Â ¿©ÀüÈ÷ À͸íÇÔ¼ö¸¦ °®°í ÀÖ½À´Ï´Ù. ¾Õ¼­µµ ¾ð±ÞÇÏ¿´Áö¸¸, ÀÚ¹Ù½ºÅ©¸³Æ®´Â °´Ã¼ ÂüÁ¶¸¦ Çϱ⠶§¹®¿¡ ¾î´À Çϳª¶óµµ ÂüÁ¶°¡ µÇ°í ÀÖ´Â °´Ã¼´Â ¸Þ¸ð¸®¿¡¼­ ¼ö°Å°¡ µÇÁö ¾Ê½À´Ï´Ù.

±×·¸Áö¸¸ Ŭ·ÎÀúÀÇ »ç¿ëÀº ºÐ¸í °ü¸®¸¸ Àß ÇÑ´Ù¸é ¼Óµµ ºÎºÐ¿¡¼­ Å« À̵æÀ» ¾È°ÜÁÙ ¼ö ÀÖ½À´Ï´Ù.


    var i = 0;
    function test(){
        var i = 0; // case(3)
        return function() {
            //var j = window.i++; //case (1)
            var j = i++; // case(2)
        };
    };
    
    var fn = test();
    var t1 = new Date;
    var k = l = 0;
    
    for ( ; k++ < 200000; )
    {
        for ( ; l++ < 200000; )
        {
            fn();
        };        
    };
    alert((new Date) - t1);


À§ ¿¹Á¦¿¡¼­ °¢°¢ ´ÙÀ½°ú °°Àº ¼³Á¤À¸·Î ½ÇÇèÀ» ÇØº¸½Ã¸é ¾Ë°Ô µÇ½Ç °Ì´Ï´Ù.

        1) case1 ÁÖ¼®Ã³¸®
        2) case 1, 3 ÁÖ¼®Ã³¸®
        3) case 2 ÁÖ¼®Ã³¸®
        
ºê¶ó¿ìÀú º°·Î »óȲÀÌ ´Ù¸£±â´Â ÇϰÚÁö¸¸ º¸Åë window.i ½ÄÀ¸·Î Á¢±ÙÇÏ´Â °Í º¸´Ù Ŭ·ÎÀú°¡ ºü¸¦ °ÍÀÔ´Ï´Ù. (ÇØº¸½Ã¸é ¾Æ½Ã°ÚÁö¸¸ IE ¤Ô¤µ¤Î¤µ ¼Ò¸® ³ª¿É´Ï´Ù.) ¶Ç ºê¶ó¿ìÀú¿¡ µû¶ó¼­ Ŭ·ÎÀúº¸´Ù Àü¿ª i¸¦ ÂüÁ¶ÇÏ´Â °Ô ´õ ºü¸¥ °æ¿ìµµ ÀÖ½À´Ï´Ù.

Fin



ÇÏ´Ùº¸´Ï Ŭ·ÎÀú±îÁö ÇÏ°Ô µÇ¾ú½À´Ï´Ù. Ŭ·ÎÀú¿¡ ´ëÇÑ ÀÌÇØ´Â Á» ¸¹ÀÌ ºÎÁ·ÇÒ ¼öµµ ÀÖ½À´Ï´Ù. ±× ºÎºÐ¿¡ ´ëÇØ¼­´Â ±¸±Û¸µ¸¸ »ì¦ÇÏ¿©µµ ÃæºÐÇÑ ¾ê±âµéÀÌ ³ª¿À´Ï ±×°ÍÀ» ÂüÁ¶Çϼŵµ ÁÁÀ» °ÍÀÔ´Ï´Ù.

ÀÚ¹Ù½ºÅ©¸³Æ®´Â ½ºÅ©¸³Æ®¾ð¾î¶ó´Â Ư¼º»ó °¡º±°Ô º¸ÀÏ ¼öµµ ÀÖÁö¸¸, ±× ƯÀ¯ÀÇ À¯¿¬ÇÔÀº Á¤¸» ȯ»óÀûÀ̶ó°í ÇÒ ¼ö ÀÖ½À´Ï´Ù. ´Ù¸¸ ±× À¯¿¬ÇÔÀÌ ¸¹Àº ºÒ¾ÈÁ¤¼ºÀ» ³»Æ÷Çϰí ÀÖ´Ù´Â °Í, ±×°ÍÀ» ¿°µÎÇØ¾ß ÇÒ °Í ÀÔ´Ï´Ù.

ÀÌ»óÀ¸·Î º° ¿µ¾ç°¡ ¾ø´Â °­Á ¾Æ´Ñ °­ÁÂ, ÆÁ ¾Æ´Ñ ÆÁÀ» ¸¶Ä¡µµ·Ï ÇϰڽÀ´Ï´Ù.
License
º» °Ô½Ã¹°Àº GPLÀ» µû¸¨´Ï´Ù. [ GPL ¾È³» ]
°ø´ë¿©ÀÚ 10-02-20 10:16
ÀÌ·± ÁÁÀº ±Û¿¡ ³»°¡ ù ¸®ÇÃÀ» ´Þ´Ù´Ï ¿µ±¤.
Seeker 10-02-20 10:57
ÁÁÀº ±Û °¨»çÇÕ´Ï´Ù.

Áú¹®...
Ŭ·ÎÀú¸¦ »ç¿ëÇϸ鼭 °³ÀÎÀûÀ¸·Î °¡Àå ½Å°æ¾²ÀÌ´Â ºÎºÐ Áß Çϳª°¡ ¸Þ¸ð¸® ´©¼öÀÔ´Ï´Ù.
GCÀÇ ¹æ½Ä ¹× ¼º´Éµµ ºê¶ó¿ìÀú¸¶´Ù ´Ù¸¦ °ÍÀ̱⿡ Âü ¾Ö¸ÅÇÏ´õ±º¿ä.

function() {
    var o = {};
    var n = 1;
    var el = document.getElementById("el");
    el.addEventListener("click",function(){alert(n);},false);
}

¿©±â¼­ o µµ °è¼Ó ¸Þ¸ð¸®¿¡ ³²¾ÆÀÖ°Ô µÇ´Â °ÍÀΰ¡¿ä?
Á÷Á¢ ¿¬°áµÈ (ȤÀº ÂüÁ¶¸¦ ÅëÇØ ¿¬°áµÈ) °Í¸¸ ¸Þ¸ð¸®¿¡ ³²´ÂÁö, ¾Æ´Ï¸é ÇØ´ç ¹®¸Æ Àüü°¡ ¸Þ¸ð¸®¿¡ ³²´ÂÁö?
Xenia-nZero 10-02-20 18:32
Ŭ·ÎÀú°¡ Çü¼ºµÇ´Â ¿ø¸®¸¦ °£·«ÇÏ°Ô ´Ù½Ã ¼³¸íµå¸®ÀÚ¸é,
¸»¾¸µå·ÈµíÀÌ Äڵ尡 ½ÇÇàÀÌ µÇ¸é¼­ °´Ã¼°¡ Çü¼ºÀÌ µÇ°í ±× °´Ã¼°¡ ÂüÁ¶°¡ µË´Ï´Ù. Áï À§ÀÇ ÇÔ¼ö¿¡¼­ À͸íÇÔ¼ö function() { alert(n); } °¡ ÇÔ¼ö °´Ã¼·Î Çü¼ºµÇ¸é¼­ nÀ» ÂüÁ¶ÇÏ°Ô µÇ±â ¶§¹®¿¡ o ¿Í´Â ¹«°üÇÕ´Ï´Ù.

built-in °´Ã¼¿¡´Â ±× °´Ã¼°¡ ¾îµð¿¡ Á¾¼Ó(bind)µÇ¾î Àִ°¡¸¦ °¡¸®Å°´Â Æ÷ÀÎÆ® °°Àº ÇÁ·ÎÆÛƼ°¡ ÀÖ½À´Ï´Ù. Áï ÇÔ¼ö °´Ã¼°¡ ½ÇÇàµÇ´Â µ¿¾È o, nÀº function ³»ºÎ¿¡ Á¾¼ÓµÇ¾î ÀÖÁö¸¸ ÇÔ¼ö°¡ ³¡³ª°í ÂüÁ¶¿Í Á¾¼ÓÀÌ ³¡³ª°í CGÈÄ¿¡ ¾ø¾îÁö´Â °Ô Ÿ´çÇÏÁö¸¸ À§¿¡¼­ ¾ð±ÞÇß´ø¹Ù¿Í °°ÀÌ »ý¼ºµÇ´Â À͸íÇÔ¼ö°¡ nÀ» ÂüÁ¶Çϸ鼭 nÀ» Á¾¼ÓÇÏ´Â »õ·Î¿î ÂüÁ¶ ¿¬°áÀÌ »ý±â°Ô µÇ¾î nÀº ³²¾ÆÀÖ°Ô µÇ°í o´Â »ç¶óÁö°Ô µÇ´Â °ÍÀÔ´Ï´Ù.

Áï. built-in °´Ã¼µéÀº ¿ì¸®°¡ °´Ã¼-ÇÏÀ§°´Ã¼ ½ÄÀ¸·Î ¿¬°áµÈ °ÍÀ¸·Î º¸ÀÌÁö¸¸ »ç½ÇÀº ÇÁ·ÎÆÛƼ·Î ¿¬°áµÈ ÂüÁ¶µÈ °³Ã¼¶ó´Â °ÍÀÔ´Ï´Ù. ¿£Áø·¹º§¿¡¼­ º¸ÀÚ¸é o, n °ú À̸¦ ¸¸µé¾î³½ function() °´Ã¼´Â °¢°¢ µû·Î Á¸ÀçÇÏ´Â built-in °´Ã¼¶ó´Â ¸»ÀÔ´Ï´Ù.

Ŭ·ÎÀú¶ó´Â °³³äÀº, »ç½Ç ¿ì¸®°¡ »ý°¢ÇÏ´Â °Íº¸´Ù ±¤¹üÀ§ÇÏ°Ô »ç¿ëÀÌ µË´Ï´Ù.

function a(v1, v2) { var arr = [v1, v2]; var v3 = v1 + v2; return arr; };
var b = a(1, 2); // [1, 2]

ÀÌ¿Í °°Àº °æ¿ìµµ ÇϳªÀÇ Å¬·ÎÀú°¡ µÇ°ÚÁÒ? Àú ¿¹¸¦ º¸¸é ½±°Ô ÀÌÇØ¸¦ ÇÏ½Ç °Ì´Ï´Ù. aÀÇ ÇÔ¼ö¿¡¼­ »ý¼ºµÈ arr¿Í v3´Â ÇÔ¼öÀÇ ¼öÇàÀÌ ³¡³ª¸é ÂüÁ¶°¡ ³¡³ª°í ¾ø¾îÁý´Ï´Ù. ÇÏÁö¸¸ built-in °´Ã¼ arr´Â b¿¡ ÀÇÇØ¼­ ÂüÁ¶°¡ µÇÁÒ. ±×·¡¼­ ´ÙÀ½¹ø a°¡ ½ÇÇàÀÌ µÉ ¶§ arr´Â »õ·Î¿î ¿¬°áÀ» °®°Ô µÇ´Â °ÍÀÔ´Ï´Ù. ¹°·Ð b°¡ °¡Áø arr°ú ´Â ´Ù¸¨´Ï´Ù. ÀÌ°Ç ¾îµð±îÁö³ª ±× °´Ã¼ÀÇ À̸§À̰í ÀÌ À̸§Àº bulit-in °´Ã¼ »ó¿¡¼­´Â id°¡ ¾Æ´Õ´Ï´Ù.

function x(obj) { if (typeof a == "undefined") { var a = 1; } else { a++ }; obj.fn = function() { return a; };}

ÀÌ¿Í °°Àº ÇÔ¼ö°¡ ÀÖÀ» ¶§

var a = b = {};
x(a);
a.fn(); // 1
x(b);
b.fn(); // 1

ÀÌÇØÇϽðÚÁö¿ä? Áï Á¤ÀÇµÈ ÇÔ¼ö °´Ã¼¶ó°í ÇØµµ ÀÌ¹Ì ±× ¾È¿¡ ÀÖ´Â º¯¼öµéÀº ±× ÂüÁ¶¸¦ ´Ù ²÷¾ú±â ¶§¹®¿¡ ´õ ÀÌ»ó ÂüÁ¶°¡ ¾ø´Â °´Ã¼µéÀº ¼ö°Å°¡ µË´Ï´Ù. Ŭ·ÎÀú¶ó´Â °³³ä ÀÚü´Â ±¤¹üÀ§ÇÏ°Ô ÀÌ¿ëÀÌ µÇ°í ÀÖÁö¸¸, Åë»óÀûÀ¸·Î´Â nameless °´Ã¼¶ó°í º¸½Ã¸é µË´Ï´Ù. À̸§ÀÌ ÀÖ±ä Çѵ¥ »ç½Ç ±× À̸§ÀÌ ¾Æ´Ñ ³à¼®ÀÎ ¼ÀÀÌÁÒ.
Seeker 10-02-20 21:45
Ä£ÀýÇÏ°í »ó¼¼ÇÑ ´äº¯ °¨»çÇÕ´Ï´Ù!
php»ç¶ûÀÌ 10-02-20 15:26
Á¤¸®°¡ ¾ÆÁÖ Àß µÇ¾îÀֳ׿ä
ÁÁÀº ±Û °¨»ç
±×³× 10-02-20 16:29
°í»ýÇϼ̽À´Ï´Ù.
°¨»çÇÕ´Ï´Ù. ½ºÅ©·¦ºÏ¿¡ ¸Þ¸ðÇÕ´Ï´Ù.
¾ËÂùµ¹»ß 10-02-20 19:18
ÁÁÀº ±Û °¨»çÇÕ´Ï´Ù........
Ä®¼Ø 10-02-20 20:35
Xenia-nZero´Ô // ¾ËÂù °Ô½Ã¹°ÀÔ´Ï´Ù. °¨»çÇÕ´Ï´Ù ^^
ÇϾá²É¿ôÀ½ 10-02-22 11:54
Æò¼Ò¿¡ °¡Áö´Â Àǹ®Á¡ÀÌ ¸¹ÀÌ Ç®¸®°Ô µÇ¾ú½À´Ï´Ù.
ÁÁÀº ±Û Àß º¸¾Ò½À´Ï´Ù.
¹è¯ÀÌ 10-02-22 23:54
ÁÁ³×¿ä..
»õ·Î°¡ÀÔ 10-02-23 10:00
ÀÌ·±°Ô½Ã¹°À» ÀÌÁ¦¾ß º¸´Ù´Ï;; °¨»çÇÕ´Ï´Ù.
³¶¸Á¹é¼ö 10-02-23 15:27
Xenia-nZero //
Çѵ¿¾È Æ÷·³¿¡¼­ ¶ß°Ì°Ô ´Ù·ç¾îÁ³´ø ±ÛÀÌ¶ó¼­ ´Ù ÀÐÁö´Â ¾Ê°í ¸ÕÀú ¹°¾îº¾´Ï´Ù.
ECMA ½ºÅ©¸³Æ®¿Í javascript ±×¸®°í ºê¶ó¿ìÀúÀÇ ±¸ÇöµéÀÌ ¿ÏÀüÈ÷ µ¿ÀÏÇÏÁö´Â ¾ÊÀºµ¥,
º»¹®ÀÇ ³»¿ëµéÀÌ µð¹ö±ë±îÁö ¾Æ¿ì¸¦ ¼ö ÀÖ´Â ³»¿ëÀÎÁö ¾Æ´Ï¸é ¿ø·ÐÀÎÁö ±Ã±ÝÇÕ´Ï´Ù.

Áú¹® 2. Àо½Å °ü·Ã Ã¥À̳ª Æ÷½ºÆ®Á» ¾Ë·ÁÁÖ½Ã¸é °¨»çÇϰڽÀ´Ï´Ù. ^^

²Ù¹÷~!
Xenia-nZero 10-02-25 16:53
°£´ÜÈ÷ ¸»ÇÏÀÚ¸é ¿ø·ÐÀÔ´Ï´Ù. ¿ø·ÐÀÇ ±Ù°Å´Â ECMA ½ºÅ©¸³Æ® ±â¼ú¹®¼­À̰í¿ä. ¿ì¸® °³¹ßÀÚ ÀÔÀå¿¡¼­ °³¹ßÅø ¶Ç´Â ÄÄÆÄÀÏ·¯ ÀÚü¸¦ µð¹ö±ëÇÏÁö´Â ¾ÊÀݾƿä? °°Àº °Ì´Ï´Ù. (¹°·Ð ¸¶À½¸Ô°í ÇÏÀÚ¸é ¸øÇÒ °Íµµ ¾øÁö¸¸) ¿ì¸®°¡ ÀÚ¹Ù½ºÅ©¸³Æ®¸¦ °³¹ßÇÏ´Â ÀÔÀå¿¡¼­ °¢ º¥´õÀÇ ºê¶ó¿ìÀúµéÀÇ µ¿ÀÛÀ» µð¹ö±ëÇÒ ¼ö´Â ¾øÁÒ. ¹°·Ð ÆÄÀ̾î¹ö±× °°ÀÌ È£½ºÆ® °´Ã¼µéÀÇ º¯È­°°Àº °Å¾ß µð¹ö±ëÇÒ ¼ö´Â ÀÖÁö¸¸, ¿ø·ÐÀûÀÎ ºÎºÐÀº °¢ º¥´õµéÀÇ °íÀ¯ÀÇ ±â¼úÀ̴ϱî¿ä.

±×·¡¼­ °á·ÐÀûÀ¸·Î À§ ³»¿ëÀÌ ¸ðµç ºê¶ó¿ìÀú¿¡¼­ ¸ðµÎ Ÿ´çÇϳĶó´Â Áú¹®À» Á¦°Ô ÇϽŴٸé Àå´ã±îÁö´Â ÇÒ ¼ö ¾ø½À´Ï´Ù. ´Ù¸¸ ECMA Ç¥ÁØ¿¡ ±ÔÇÕÇÏ´Â ºÎºÐ¿¡ ÇÑÇØ¼­´Â ¸ðµÎ °°Àº °á°ú¸¦ ³½´Ù´Â °Í ±îÁö¸¸ ¸»¾¸µå¸± ¼ö ÀÖ½À´Ï´Ù. ±â¼ú¹®¼­¿¡ µ¿ÀÛ¼ø¼­¸¦ ±â¼úÇßÀ¸´Ï, ±×´ë·Î Çß´Ù¸é °°Àº °á°ú°¡ ³ª¿Í¾ß Çϴϱî¿ä.

±×¸®°í À§ ³»¿ëÀº ¹¹¶ö±î ¿ì¸® ÀÚ¹Ù½ºÅ©¸³Æ® °³¹ßÀÚ ÀÔÀå¿¡¼­ ÀÌÇØÇϱ⠽±°Ô Á¦°¡ Ç®ÀÌÇÑ ºÎºÐµµ Á» Àֱ⠶§¹®¿¡ ¿ë¾î ÀÚü°¡ ECMA¿¡¼­ Á¤ÀÇÇÑ °Í°ú ¿ÏÀüÈ÷ ÀÏÄ¡ÇÏÁö´Â ¾Ê½À´Ï´Ù. ¹°·Ð ±×°Í¿¡ ¾î±ß³ªÁö ¾Ê°Ô ³ë·ÂÇÏ¿´½À´Ï´Ù.

±×¸®°í ¿ø·ÐÀ̱⠶§¹®¿¡ °¡Àå ÁÁÀº Âü°í¼­(¶Ç´Â ÂüÁ¶)´Â ¿ª½Ã ±â¼ú¹®¼­°ÚÁö¿ä?

1. Built-in object
http://www.doitonline.org/cutejavascript/javascript%20alfabetisch/www.dardenhome.com/js/x8207.htm

2. Native object
http://www.doitonline.org/cutejavascript/javascript%20alfabetisch/www.dardenhome.com/js/x8148.htm

3. Host object
http://www.doitonline.org/cutejavascript/javascript%20alfabetisch/www.dardenhome.com/js/x8681.htm

4. JavaScript Programmer's Reference
http://www.doitonline.org/cutejavascript/javascript%20alfabetisch/www.dardenhome.com/js/4591_index.htm

5. Standard ECMA-262
http://www.ecma-international.org/publications/standards/Ecma-262.htm
³¶¸Á¹é¼ö 10-02-26 23:34
Èľî~ wrox ·¹ÆÛ·±½º ±×´ë·Î ´ãÀº »çÀÌÆ®Àΰ¡º¸ÁÒ? (»ìÆìº¸´Ï ¸Â±º¿ä. ^^;)
¸µÅ© °¨»çÇÕ´Ï´Ù. ²Ù¹÷~!
°Ô½Ã¹° 11,975°Ç
¹øÈ£ ºÐ·ù Á¦¸ñ ±Û¾´ÀÌ ³¯Â¥ Á¶È¸
11,975 ¹ö±× Ç¢´çÇÑ Firefox ¹ö±× [9] ½Ã¿ìã¿éë 10-07-29 341
11,974 ÇÔ¼ö [PHP] Æ®À§ÅÍ(?) ó·³ ³¯Â¥µ¥ÀÌÅ͸¦ °£¼ÒÇÏ°Ô Ãâ·Â [8] ¿ì»çÀκ¼Æ® 10-07-24 639
11,973 ÇÔ¼ö [PHP5] CF Menu 0.1.1 ±×³× 10-07-22 617
11,972 ½ºÅ©¸³Æ® jquery ellipsys ÀÔ´Ï´Ù. [6] ¸Û±× 10-07-19 759
11,971 ½ºÅ©¸³Æ® [jquery] .live ¿¡¼­ change À̺¥Æ® »ç¿ëÇϱâ(²Ä¼öÀÓ) [5] Äðº¸À̱³¿ø 10-07-15 578
11,970 DBMS MSSQL > MySQL µ¥ÀÌÅÍ ÀÌÀü °ü·Ã 1¿ø Tip [1] AJ½ÄÀÌ´Ô 10-07-13 626
11,969 ½ºÅ©¸³Æ® DatePicker ³¯Â¥ Á¾·áÀÏ Ã¼Å©. [3] Äðº¸À̱³¿ø 10-07-12 503
11,968 Á¤º¸ ÇÑ±Û HWP ¹®¼­ÆÄÀÏ ¾ç½Ä °ø°³ [8] »ç¾ÇÇѹڴ븮 10-07-12 822
11,967 HTML CSS(CLASS)¸¦ »ç¿ëÇÑ SHOW , HIDE ¹æ¹ý [12] °ø´ë¿©ÀÚ 10-07-10 694
11,966 ½ºÅ©¸³Æ® [jQuery] datePicker ------ °¡´ÉÇÑ Á¾·áÀÏ Ã¼Å©[º¸¿Ï¼öÁ¤] [6] Äðº¸À̱³¿ø 10-07-09 471
11,965 Á¤º¸ ´ÙÀ½ ½Ç½Ã°£À̽´ °Ë»ö¾î XML Ãâ·ÂÇϱâ [5] Äí·¹ÀÌÁö½ß 10-07-08 707
11,964 ½ºÅ©¸³Æ® jquery ÀÚµ¿¿Ï¼º autocomplete ±â´É ½±°Ô Àû¿ëÇϱâ [6] Á¦ºÎµµ¼Ò³â 10-07-08 847
11,963 ¾Ë°í¸®Áò SOAP [4] ³ª´®À̶õ 10-07-07 682
11,962 ±âŸ ³×ÀÌÆ®¿Â ÇÁ·Ï½Ã ¼­¹ö ¼³Á¤Çϱâ (¹«·á) [2] °¡ºñ¸¸¼¼ 10-07-05 1007
11,961 ±âŸ ÇÁ·Ï½Ã ¼­¹ö (High anonymous) »ç¿ëÀÚ Ã¼Å© Çϱâ. [8] KzMJN 10-06-25 1040
11,960 ¼³Ä¡/¼³Á¤ [asp] ¾÷·Îµå ÄÄÆ÷³ÍÆ® (nfupload+freeaspupload) º½µ¹¤Ô 10-06-23 899
11,959 ÇÔ¼ö ½±°Ô ½±°Ô Xpath ÇÔ¼ö ´ÙÇÁ¸° 10-06-19 1127
11,958 ½ºÅ©¸³Æ® ajax(jquery) ¹«ÇÑ ½ºÅ©·Ñ ½ºÅ©·Ñ ³¡¿¡ °¡¸é ´ÙÀ½ µ¥ÀÌÅÍ ·Îµå [6] daniselseo 10-06-14 1829
11,957 ÇÔ¼ö °Ô½Ã¹°ÀÌ »è.Á¦. µÇ¾ú½À´Ï´Ù. [2] BiHon 10-06-09 1146
11,956 ÇÔ¼ö °Ô½Ã¹°ÀÌ »è.Á¦. µÇ¾ú½À´Ï´Ù. [13] BiHon 10-06-07 1617
ȸ»ç¼Ò°³ »çÀÌÆ®¸Ê ÀÌ¿ë¾à°ü °³ÀÎÁ¤º¸Ãë±Þ¹æÄ§ À̸ÞÀÏ ¹«´Ü¼öÁý °ÅºÎ ÀÎÀçä¿ë Á¦ÈÞ¹®ÀÇ ±¤°í¾È³»
(ÁÖ)ÇÇ¿¡ÀÌÄ¡ÇǽºÄð´åÄÄ »ç¾÷¹øÈ£ 119-86-25309 ÅëÆÇ 2010-¼­¿ï±Ýõ-0082È£ Á÷¾÷Á¤º¸ ¼­¿ï°ü¾Ç Á¦2010-03È£
¼­¿ï½Ã ±Ýõ±¸ °¡»êµ¿ 371-50 ¿¡À̽ºÇÏÀ̾صå3Â÷ 9Ãþ ´ëÇ¥ ÀÓ¼ºÁø °³ÀÎÁ¤º¸º¸È£Á¤Ã¥ ¹× ´ã´ç ÇϹÌÇâ
ÀüÈ­ 02-2627-6637 ÆÑ½º 02-2624-1371 E-mail member@phpschool.com
Copyright PHPSCHOOL.com All rights reserved.