Javascript±Õ°ü(Closure)
ClosureÖÐÎÄ·ÒëΪ±Õ°ü.×ÖÃæÉÏÀ´Àí½â¾ÍÊÇ"·â±ÕµÄ°ü".(ÕâÊÇÒ»¾ä·Ï»°)
±Õ°üÊÇʲô?
ÊéÃæ½âÊÍΪ:
Ëùν“±Õ°ü”£¬Ö¸µÄÊÇÒ»¸öÓµÓÐÐí¶à±äÁ¿ºÍ°ó¶¨ÁËÕâЩ±äÁ¿µÄ»·¾³µÄ±í´ïʽ£¨Í¨³£ÊÇÒ»¸öº¯Êý£©£¬Òò¶øÕâЩ±äÁ¿Ò²ÊǸñí´ïʽµÄÒ»²¿·Ö¡£
ÎÒÈÏΪ±Õ°ü¾ÍÊÇÄܹ»¶Á/дº¯ÊýÄÚ²¿µÄijЩ±äÁ¿µÄ×Óº¯Êý,²¢½«ÕâЩ±äÁ¿±£´æÔÚÄÚ´æÖÐ.
±Õ°üµÄ×÷ÓÃ
ÉÏÃæµÄ¸ÅÄîÖÐÒѾÌáµ½¹ý,Ö÷Òª¾ÍÊÇΪÁ˶Á/
дº¯ÊýÄÚ²¿µÄijЩ±äÁ¿,²¢½«Ëü±£³ÖÔÚÄÚ´æÖÐ.¿ÉÄÜÕâÑù½²Î´±ØÕâôÈÝÒ×Àí½â,ÏÂÃæÈÃÎÒÃÇÀ´¿´Ò»Ð©Àý×Ó:
1,¶ÁÈ¡¾¯²ìµÄÉúÃüÖµ
function PoliceMan() {
//¶¨Òå³õʼÉúÃüÖµ
var lifeEnergy = 100;
//ÏÔʾµ±Ç°ÉúÃüÖµ
function showLifeEnergy() {
alert(lifeEnergy);
}
return showLifeEnergy;
}
//´´½¨Ò»¸ö¾¯²ì
var pm = new PoliceMan();
//ÏÔʾµ±Ç°ÉúÃüÖµ
pm();
2,¶Áд/±£´æ ¾¯²ìµÄÉúÃüÖµ
function PoliceMan() {
//¶¨Òå³õʼÉúÃüÖµ
var lifeEnergy = 100;
//Öе¯¼õÉÙÉúÃüÖµ
InBullet = function(){
lifeEnergy -= 1;
}
//ÏÔʾµ±Ç°ÉúÃüÖµ
function showLifeEnergy() {
alert(lifeEnergy);
}
return showLifeEnergy;
}
//´´½¨Ò»¸ö¾¯²ì
var pm = new PoliceMan();
//ÏÔʾµ±Ç°ÉúÃüÖµ
pm();
//Öе¯¼õÉÙÉúÃüÖµ
InBullet();
//ÏÔʾµ±Ç°ÉúÃüÖµ
pm();
×¢ÒâÊÂÏî
ÓÉÒÔÉÏÀý×ÓÎÒÃÇ¿ÉÒÔ¿´µ½¾¯²ìµÄÉúÃüÖµ±äÁ¿
lifeEnergy»áһֱפÁôÔÚÄÚ´æµ±ÖÐ.Èç¹ûÕâÖÖ·½·¨Ê¹ÓÃÆµ·±,ÄÇôºÜÈÝÒ׾ͰѻúÆ÷µÄÄÚ´æÏûºÄÍê.Òò´Ë½¨ÒéÄÜÓú¯ÊýµÄµØ·½¾Í¾¡Á¿Ê¹Óú¯Êý,¶ø²»ÒªÊ¹ÓÃ
±Õ°ü.
×÷Õߣº·ÊÕ¼
³ö´¦£ºhttp://extjs.org.cn
±¾ÎİæÈ¨¹é×÷ÕߺÍExtJsÖÐÎÄ×ÊѶվ¹²ÓУ¬»¶Ó×ªÔØ£¬µ«Î´¾×÷ÕßͬÒâ±ØÐë±£Áô´Ë¶ÎÉùÃ÷£¬ÇÒÔÚÎÄÕÂÒ³ÃæÃ÷ÏÔλÖøø³öÔÎÄÁ¬½Ó¡£
Ïà¹ØÎĵµ£º
±¾ÎÄÖ÷ÒªÊdzöÓÚÓÐÅóÓÑʹÓÃÎÒÔÀ´Ð´µÄautocompleteµÄJS¿Ø¼þ¡£µ±Êý¾ÝÁ¿´óµÄʱºò£¬»á³öÏÖЧÂʼ«ÆäÂýµÄÇé¿ö£¬ÎÒÔÚÕâ¶Îʱ¼ä×ö³öµÄһЩ²âÊÔÒ²¼°Ò»Ð©¾Ñ飬Óë´ó¼Ò·ÖÏí£¬Èç¹ûÓдíµÄµØ·½£¬»¹ÇëÖ¸³ö¡£
¾¹ý²âÊÔ£¬ÎÒÃǻᷢÏÖÈçϵÄÇé¿ö»òÕß˵µÄ½áÂÛ£¬Èç¹ûÄúµÄ²âÊÔ½á¹ûÓëÎҵIJ»·û£¬Çë˵Ã÷ÔÒò£¬ÒÔ±ãÏ໥ѧϰ¡£
1£©µ±Ò»¸ö½Ï´óµÄHTML×Ö· ......
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>five-in-a-raw</title>
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
<style>
  ......
2¡¢ÔÐÍ·½Ê½Ð´À࣬ÔÐÍ·½Ê½¼Ì³Ð
core js×ÔÉíµÄ¶ÔÏóϵͳ¾ÍÊDzÉÓÃÔÐÍ·½Ê½(prototype based)¼Ì³ÐµÄ¡£»òÕß˵core
jsûÓвÉÓó£¼ûµÄÀà¼Ì³Ð(class
based)ϵͳ£¬¶øÊÇʹÓÃÔÐͼ̳ÐÀ´ÊµÏÖ×Ô¼ºµÄ¶ÔÏóϵͳ¡£¹¤×÷ÖÐÎÒÃÇÒ²¿ÉÒÔÓÃÔÐÍ·½Ê½À´ÊµÏּ̳У¬´úÂ븴ÓÃÒÔ¹¹½¨×Ô¼ºµÄ¹¦ÄÜÄ£¿é¡£
/**
* ¸¸ÀàPolygon:¶à±ßÐÎ
*
*/
functio ......
3¡¢×éºÏ¹¹Ô캯Êý/ÔÐÍ·½Ê½Ð´À࣬²ÉÓÃÇ°ÃæÖÖ·½Ê½¼Ì³Ð
ÕâÖÖ·½Ê½¸¸À࣬×ÓÀàµÄÊôÐÔ¶¼¹ÒÔÚ¹¹Ô캯ÊýÀ·½·¨¶¼¹ÒÔÚÔÐÍÉÏ¡£
/**
* ¸¸ÀàPolygon:¶à±ßÐÎ
*/
function Polygon(sides) {
this.sides = sides;
}
Polygon.prototype.setSides = function(s) {this.sides=s;}
/**
* Triangle Èý½ÇÐÎ
* @param {Object} b ......
JavascriptÊý¾ÝÀàÐÍ
ÓÉÓÚjavascriptÊÇÈõÀàÐÍÓïÑÔ£¬¼´¶¨Òå±äÁ¿Ê±²»±ØÉùÃ÷ÆäÀàÐÍ
¡£µ«Õâ²¢²»Òâζ×űäÁ¿Ã»ÓÐÀàÐÍ¡£ÒòΪ¸³ÖµÊ±»á×Ô¶¯Æ¥ÅäÊý¾ÝÀàÐÍ£¡
ĿǰÓõ½µÄ»ù±¾Êý¾ÝÀàÐÍ
number
boolean
string
var i
i="test";//Õâʱi¾Í³ÉÁËstringÀàÐÍ
var i
i=4;//Õâʱi¾Í³ÉÁËnumberÀàÐÍ
³£ÓöÔÏóÀàÐÍ<object> ......