ECMAScript ±Õ°ü£¨closure£©

ECMAScript ×îÒ×ÈÃÈËÎó½âµÄÒ»µãÊÇ£¬ËüÖ§³Ö±Õ°ü£¨closure£©¡£

±Õ°ü£¬Ö¸µÄÊÇ´Ê·¨±íʾ°üÀ¨²»±»¼ÆËãµÄ±äÁ¿µÄº¯Êý£¬Ò²¾ÍÊÇ˵£¬º¯Êý¿ÉÒÔʹÓú¯ÊýÖ®ÍⶨÒåµÄ±äÁ¿¡£

¼òµ¥µÄ±Õ°üʵÀý

ÔÚ ECMAScript ÖÐʹÓÃÈ«¾Ö±äÁ¿ÊÇÒ»¸ö¼òµ¥µÄ±Õ°üʵÀý¡£Çë˼¿¼ÏÂÃæÕâ¶Î´úÂ룺

var sMessage = "hello world";

function sayHelloWorld() {
  alert(sMessage);
}

sayHelloWorld();

ÔÚÉÏÃæÕâ¶Î´úÂëÖУ¬½Å±¾±»ÔØÈëÄÚ´æºó£¬²¢Ã»ÓÐΪº¯Êý sayHelloWorld() ¼ÆËã±äÁ¿ sMessage µÄÖµ¡£¸Ãº¯Êý²¶»ñ sMessage µÄÖµÖ»ÊÇΪÁËÒÔºóµÄʹÓã¬Ò²¾ÍÊÇ˵£¬½âÊͳÌÐòÖªµÀÔÚµ÷Óøú¯ÊýʱҪ¼ì²é sMessage µÄÖµ¡£sMessage ½«ÔÚº¯Êýµ÷Óà sayHelloWorld() ʱ£¨×îºóÒ»ÐУ©±»¸³Öµ£¬ÏÔʾÏûÏ¢ "hello world"¡£

¸´ÔӵıհüʵÀý

ÔÚÒ»¸öº¯ÊýÖж¨ÒåÁíÒ»¸ö»áʹ±Õ°ü±äµÃ¸ü¼Ó¸´ÔÓ¡£ÀýÈ磺

var iBaseNum = 10;

function addNum(iNum1, iNum2) {
  function doAdd() {
    return iNum1 + iNum2 + iBaseNum;
  }
  return doAdd();
}

ÕâÀº¯Êý addNum() °üÀ¨º¯Êý doAdd() £¨±Õ°ü£©¡£ÄÚ²¿º¯ÊýÊÇÒ»¸ö±Õ°ü£¬ÒòΪËü½«»ñÈ¡Íⲿº¯ÊýµÄ²ÎÊý iNum1 ºÍ iNum2 ÒÔ¼°È«¾Ö±äÁ¿ iBaseNum µÄÖµ¡£ addNum() µÄ×îºóÒ»²½µ÷ÓÃÁË doAdd()£¬°ÑÁ½¸ö²ÎÊýºÍÈ«¾Ö±äÁ¿Ïà¼Ó£¬²¢·µ»ØËüÃǵĺ͡£

ÕâÀïÒªÕÆÎÕµÄÖØÒª¸ÅÄîÊÇ£¬doAdd() º¯Êý¸ù±¾²»½ÓÊܲÎÊý£¬ËüʹÓõÄÖµÊÇ´ÓÖ´Ðл·¾³ÖлñÈ¡µÄ¡£

¿ÉÒÔ¿´µ½£¬±Õ°üÊÇ ECMAScript Öзdz£Ç¿´ó¶àÓõÄÒ»²¿·Ö£¬¿ÉÓÃÓÚÖ´Ðи´ÔӵļÆËã¡£

Ìáʾ£º¾ÍÏñʹÓÃÈκθ߼¶º¯ÊýÒ»Ñù£¬Ê¹ÓñհüҪСÐÄ£¬ÒòΪËüÃÇ¿ÉÄÜ»á±äµÃ·Ç³£¸´ÔÓ¡£

VUE