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ÖÐÎÄ×ÊѶվ¹²ÓУ¬»¶Ó×ªÔØ£¬µ«Î´¾×÷ÕßͬÒâ±ØÐë±£Áô´Ë¶ÎÉùÃ÷£¬ÇÒÔÚÎÄÕÂÒ³ÃæÃ÷ÏÔλÖøø³öÔÎÄÁ¬½Ó¡£
Ïà¹ØÎĵµ£º
Dynamic Scopes ¶¯Ì¬×÷ÓÃÓò
Both the with statement and the catch clause of a try-catch statement, as well as a function containing eval_r(), are all considered to be dynamic scopes. A dynamic scope is one that exists only through execution of code and therefore cannot be det ......
Nested Members ǶÌ׳ÉÔ±
Since object members may contain other members, it's not uncommon to see patterns such as window.location.href in JavaScript code. These nested members cause the JavaScript engine to go through the object member resolution process each time a dot is ......
Cloning Nodes ½Úµã¿Ë¡
Another way of updating page contents using DOM methods is to clone existing DOM elements instead of creating new ones—in other words, using element.cloneNode() (where element is an existing node) instead of document.createElement().
&nbs ......
JavaScriptʼþ´óÈ«
click() ¶ÔÏó.click() ʹ¶ÔÏó±»µã»÷¡£
closed ¶ÔÏó.closed ¶ÔÏó´°¿ÚÊÇ·ñÒѹرÕtrue/false
clearTimeout(¶ÔÏó) Çå³ýÒÑÉèÖõÄsetTimeout¶ÔÏó
clearInterval(¶ÔÏó) Çå³ýÒÑÉèÖõÄsetInterval¶ÔÏó
confirm("ÌáʾÐÅÏ¢") µ¯³öÈ·ÈÏ¿ò£¬È·¶¨·µ»ØtrueÈ¡Ïû·µ»Øfalse
cursor:Ñùʽ ¸ü¸ÄÊó±êÑùÊ ......
JavascriptÊý¾ÝÀàÐÍ
ÓÉÓÚjavascriptÊÇÈõÀàÐÍÓïÑÔ£¬¼´¶¨Òå±äÁ¿Ê±²»±ØÉùÃ÷ÆäÀàÐÍ
¡£µ«Õâ²¢²»Òâζ×űäÁ¿Ã»ÓÐÀàÐÍ¡£ÒòΪ¸³ÖµÊ±»á×Ô¶¯Æ¥ÅäÊý¾ÝÀàÐÍ£¡
ĿǰÓõ½µÄ»ù±¾Êý¾ÝÀàÐÍ
number
boolean
string
var i
i="test";//Õâʱi¾Í³ÉÁËstringÀàÐÍ
var i
i=4;//Õâʱi¾Í³ÉÁËnumberÀàÐÍ
³£ÓöÔÏóÀàÐÍ<object> ......