JavaScript ±Õ°ü
JavaScript ±äÁ¿ÊôÓÚ±¾µØ»òÈ«¾Ö×÷ÓÃÓò¡£
È«¾Ö±äÁ¿Äܹ»Í¨¹ý±Õ°üʵÏÖ¾Ö²¿£¨Ë½ÓУ©¡£
È«¾Ö±äÁ¿
º¯ÊýÄܹ»·ÃÎʺ¯ÊýÄÚ²¿¶¨ÒåµÄËùÓбäÁ¿£¬±ÈÈ磺
ʵÀý
function myFunction() { var a = 4; return a * a; }
µ«ÊǺ¯ÊýÒ²ÄÜ·ÃÎʺ¯ÊýÍⲿ¶¨ÒåµÄ±äÁ¿£¬±ÈÈ磺
ʵÀý
var a = 4; function myFunction() { return a * a; }
ÔÚ×îºóÕâ¸öÀý×ÓÖУ¬a ÊÇÈ«¾Ö±äÁ¿¡£
ÔÚÍøÒ³ÖУ¬È«¾Ö±äÁ¿ÊôÓÚ window ¶ÔÏó¡£
È«¾Ö±äÁ¿Äܹ»±»Ò³ÃæÖУ¨ÒÔ¼°´°¿ÚÖУ©µÄËùÓнű¾Ê¹ÓúÍÐ޸ġ£
ÔÚµÚÒ»¸öÀý×ÓÖУ¬a ÊǾֲ¿±äÁ¿¡£
¾Ö²¿±äÁ¿Ö»ÄÜÓÃÓÚÆä±»¶¨ÒåµÄº¯ÊýÄÚ²¿¡£¶ÔÓÚÆäËûº¯ÊýºÍ½Å±¾´úÂëÀ´ËµËüÊDz»¿É¼ûµÄ¡£
ÓµÓÐÏàͬÃû³ÆµÄÈ«¾Ö±äÁ¿ºÍ¾Ö²¿±äÁ¿ÊDz»Í¬µÄ±äÁ¿¡£ÐÞ¸ÄÒ»¸ö£¬²»»á¸Ä±äÆäËû¡£
²»Í¨¹ý¹Ø¼ü´Ê var ´´½¨µÄ±äÁ¿×ÜÊÇÈ«¾ÖµÄ£¬¼´Ê¹ËüÃÇÔÚº¯ÊýÖд´½¨¡£
±äÁ¿µÄÉúÃüÖÜÆÚ
È«¾Ö±äÁ¿»îµÃºÍÄúµÄÓ¦ÓóÌÐò£¨´°¿Ú¡¢ÍøÒ³£©Ò»Ñù¾Ã¡£
¾Ö²¿±äÁ¿»îµÃ²»³¤¡£ËüÃÇÔÚº¯Êýµ÷ÓÃʱ´´½¨£¬ÔÚº¯ÊýÍê³Éºó±»É¾³ý¡£
Ò»¸ö¼ÆÊýÆ÷µÄÀ§¾³
¼ÙÉèÄúÏëʹÓñäÁ¿À´¼ÆÊý£¬²¢ÇÒÄúÏ£Íû´Ë¼ÆÊýÆ÷¿ÉÓÃÓÚËùÓк¯Êý¡£
Äú¿ÉÒÔʹÓÃÈ«¾Ö±äÁ¿ºÍº¯ÊýÀ´µÝÔö¼ÆÊýÆ÷£º
ʵÀý
// ³õʼ»¯¼ÆÊýÆ÷ var counter = 0; // µÝÔö¼ÆÊýÆ÷µÄº¯Êý function add() { counter += 1; } // µ÷ÓÃÈý´Î add() add(); add(); add(); // ´Ëʱ¼ÆÊýÆ÷Ó¦¸ÃÊÇ 3
ÉÏÊö½â¾ö·½°¸ÓÐÒ»¸öÎÊÌâ£ºÒ³ÃæÉϵÄÈκδúÂë¶¼¿ÉÒÔ¸ü¸Ä¼ÆÊýÆ÷£¬¶øÎÞÐèµ÷Óà add()¡£
¶ÔÓÚ add() º¯Êý£¬¼ÆÊýÆ÷Ó¦¸ÃÊǾֲ¿µÄ£¬ÒÔ·ÀÖ¹ÆäËû´úÂë¸ü¸ÄËü£º
ʵÀý
// ³õʼ»¯¼ÆÊýÆ÷ var counter = 0; // µÝÔö¼ÆÊýÆ÷µÄº¯Êý function add() { var counter = 0; counter += 1; } // µ÷ÓÃÈý´Î add() add(); add(); add(); //´Ëʱ¼ÆÊýÆ÷Ó¦¸ÃÊÇ 3¡£µ«ËüÊÇ 0¡£
ËüûÓÐÓã¬ÒòΪÎÒÃÇÏÔʾȫ¾Ö¼ÆÊýÆ÷¶ø²»ÊDZ¾µØ¼ÆÊýÆ÷¡£
ͨ¹ýÈú¯Êý·µ»ØËü£¬ÎÒÃÇ¿ÉÒÔɾ³ýÈ«¾Ö¼ÆÊýÆ÷²¢·ÃÎʱ¾µØ¼ÆÊýÆ÷£º
ʵÀý
// µÝÔö¼ÆÊýÆ÷µÄº¯Êý function add() { var counter = 0; counter += 1; return counter; } // µ÷ÓÃÈý´Î add() add(); add(); add(); //´Ëʱ¼ÆÊýÆ÷Ó¦¸ÃÊÇ 3¡£µ«ËüÊÇ 1¡£
ËüûÓÐÓã¬ÒòΪÎÒÃÇÿ´Îµ÷Óú¯Êýʱ¶¼»áÖØÖñ¾µØ¼ÆÊýÆ÷¡£
JavaScript ÄÚ²¿º¯Êý¿ÉÒÔ½â¾öÕâ¸öÎÊÌâ¡£
JavaScript ǶÌ׺¯Êý
ËùÓк¯Êý¶¼ÓÐȨ·ÃÎÊÈ«¾Ö×÷ÓÃÓò¡£
ÊÂʵÉÏ£¬ÔÚ JavaScript ÖУ¬ËùÓк¯Êý¶¼ÓÐȨ·ÃÎÊËüÃÇ¡°ÉÏÃæ¡±µÄ×÷ÓÃÓò¡£
JavaScript Ö§³ÖǶÌ׺¯Êý¡£Ç¶Ì׺¯Êý¿ÉÒÔ·ÃÎÊÆäÉϵÄ×÷ÓÃÓò¡£
ÔÚ±¾ÀýÖУ¬ÄÚ²¿º¯Êý plus() ¿ÉÒÔ·ÃÎʸ¸º¯ÊýÖÐµÄ counter ¼ÆÊýÆ÷±äÁ¿£º
ʵÀý
function add() { var counter = 0; function plus() {counter += 1;} plus(); return counter; }
ÕâÑù¼´¿É½â¾ö¼ÆÊýÆ÷À§¾³£¬Èç¹ûÎÒÃÇÄܹ»´ÓÍâÃæ·ÃÎÊ plus() º¯Êý¡£
ÎÒÃÇ»¹ÐèÒªÕÒµ½Ö»Ö´ÐÐÒ»´Î counter = 0 µÄ·½·¨¡£
ÎÒÃÇÐèÒª±Õ°ü£¨closure£©¡£
JavaScript ±Õ°ü
¼ÇµÃ×Ôµ÷Óú¯ÊýÂð£¿ÕâÖÖº¯Êý»á×öÊ²Ã´ÄØ£¿
ʵÀý
var add = (function () { var counter = 0; return function () {return counter += 1;} })(); add(); add(); add(); // ¼ÆÊýÆ÷ĿǰÊÇ 3
Àý×Ó½âÊÍ
±äÁ¿ add µÄ¸³ÖµÊÇ×Ôµ÷Óú¯ÊýµÄ·µ»ØÖµ¡£
Õâ¸ö×Ôµ÷Óú¯ÊýÖ»ÔËÐÐÒ»´Î¡£ËüÉèÖüÆÊýÆ÷ΪÁ㣨0£©£¬²¢·µ»Øº¯Êý±í´ïʽ¡£
ÕâÑù add ³ÉΪÁ˺¯Êý¡£×î¡°¾«²ÊµÄ¡±²¿·ÖÊÇËüÄܹ»·ÃÎʸ¸×÷ÓÃÓòÖеļÆÊýÆ÷¡£
Õâ±»³ÆÎª JavaScript ±Õ°ü¡£Ëüʹº¯ÊýÓµÓС°Ë½ÓС±±äÁ¿³ÉΪ¿ÉÄÜ¡£
¼ÆÊýÆ÷±»Õâ¸öÄäÃûº¯ÊýµÄ×÷ÓÃÓò±£»¤£¬²¢ÇÒÖ»ÄÜʹÓà add º¯ÊýÀ´Ð޸ġ£
±Õ°üÖ¸µÄÊÇÓÐȨ·ÃÎʸ¸×÷ÓÃÓòµÄº¯Êý£¬¼´Ê¹ÔÚ¸¸º¯Êý¹Ø±ÕÖ®ºó¡£