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 º¯ÊýÀ´Ð޸ġ£

±Õ°üÖ¸µÄÊÇÓÐȨ·ÃÎʸ¸×÷ÓÃÓòµÄº¯Êý£¬¼´Ê¹ÔÚ¸¸º¯Êý¹Ø±ÕÖ®ºó¡£

VUE