Ò׽ؽØÍ¼Èí¼þ¡¢µ¥Îļþ¡¢Ãâ°²×°¡¢´¿ÂÌÉ«¡¢½ö160KB

Àí½âJavascript±Õ°ü(closure)

Àí½âJavascript±Õ°ü(closure)
רÌâ Ô­Ìû http://www.w3cgroup.com/article.asp?id=87
´ËÎÄÓÃͨË×µÄÎÄ×Ö½éÉÜÁËJavascript±Õ°ü ¡£
¿´¹ýºó£¬ÎÒ¶Ôjavascript±Õ°ü¼òµ¥µÄÀí½â¾ÍÊÇ ÎÄÖеÚËÄ¡¢Îå¶ÎÖÐËù˵µÄ“ÔÚÄÚ´æÖÐά³ÖÒ»¸ö±äÁ¿£¬²»»á±»GC»ØÊÕ”¡£
µ±È»»¹ÐèҪѧϰ²ÅÄÜÉîÈëµÄÀí½âjavascript±Õ°ü
Ò»¡¢Ê²Ã´ÊDZհü£¿
“¹Ù·½”µÄ½âÊÍÊÇ£ºËùν“±Õ°ü”£¬Ö¸µÄÊÇÒ»¸öÓµÓÐÐí¶à±äÁ¿ºÍ°ó¶¨ÁËÕâЩ±äÁ¿µÄ»·¾³µÄ±í´ïʽ£¨Í¨³£ÊÇÒ»¸öº¯Êý£©£¬Òò¶øÕâЩ±äÁ¿Ò²ÊǸñí´ïʽµÄÒ»²¿·Ö¡£
ÏàÐźÜÉÙÓÐÈËÄÜÖ±½Ó¿´¶®Õâ¾ä»°£¬ÒòΪËûÃèÊöµÄ̫ѧÊõ¡£ÎÒÏëÓà ÈçºÎÔÚJavascriptÖд´½¨Ò»¸ö±Õ°ü
À´¸æËßÄãʲôÊDZհü£¬ÒòÎªÌø¹ý±Õ°üµÄ´´½¨¹ý³ÌÖ±½ÓÀí½â±Õ°üµÄ¶¨ÒåÊǷdz£À§Äѵġ£
¿´ÏÂÃæÕâ¶Î´úÂ룺
function a(){
 var i=0;
 function b(){
 alert(++i);
 }
 return b;
}
var c = a();
c();
Õâ¶Î´úÂëÓÐÁ½¸öÌØµã£º
1¡¢º¯ÊýbǶÌ×ÔÚº¯ÊýaÄÚ²¿£»
2¡¢º¯Êýa·µ»Øº¯Êýb¡£
ÕâÑùÔÚÖ´ÐÐÍêvar c=a()ºó£¬±äÁ¿cʵ¼ÊÉÏÊÇÖ¸ÏòÁ˺¯Êýb£¬ÔÙÖ´ÐÐc()ºó¾Í»áµ¯³öÒ»¸ö´°¿ÚÏÔʾiµÄÖµ(µÚÒ»´ÎΪ1)¡£Õâ¶Î´úÂëÆäʵ¾Í´´½¨ÁËÒ»¸ö±Õ°ü£¬ÎªÊ²Ã´£¿ÒòΪº¯ÊýaÍâµÄ±äÁ¿cÒýÓÃÁ˺¯ÊýaÄڵĺ¯Êýb£¬¾ÍÊÇ˵£º
µ±º¯ÊýaµÄÄÚ²¿º¯Êýb±»º¯ÊýaÍâµÄÒ»¸ö±äÁ¿ÒýÓõÄʱºò£¬¾Í´´½¨ÁËÒ»¸ö±Õ°ü¡£
ÎÒ²ÂÏëÄãÒ»¶¨»¹ÊDz»Àí½â±Õ°ü£¬ÒòΪÄã²»ÖªµÀ±Õ°üÓÐʲô×÷Óã¬ÏÂÃæÈÃÎÒÃǼÌÐøÌ½Ë÷¡£
¶þ¡¢±Õ°üÓÐʲô×÷Óã¿
¼ò¶øÑÔÖ®£¬±Õ°üµÄ×÷ÓþÍÊÇÔÚaÖ´ÐÐÍê²¢·µ»Øºó£¬±Õ°üʹµÃJavascriptµÄÀ¬»ø»ØÊÕ»úÖÆGC²»»áÊÕ»ØaËùÕ¼ÓõÄ×ÊÔ´£¬ÒòΪaµÄÄÚ²¿º¯ÊýbµÄÖ´ÐÐÐèÒªÒÀÀµaÖеıäÁ¿¡£ÕâÊǶԱհü×÷Óõķdz£Ö±°×µÄÃèÊö£¬²»×¨ÒµÒ²²»ÑϽ÷£¬µ«´ó¸ÅÒâ˼¾ÍÊÇÕâÑù£¬Àí½â±Õ°üÐèҪѭÐò½¥½øµÄ¹ý³Ì¡£
ÔÚÉÏÃæµÄÀý×ÓÖУ¬ÓÉÓÚ±Õ°üµÄ´æÔÚʹµÃº¯Êýa·µ»Øºó£¬aÖеÄiʼÖÕ´æÔÚ£¬ÕâÑùÿ´ÎÖ´ÐÐc()£¬i¶¼ÊÇ×Ô¼Ó1ºóalert³öiµÄÖµ¡£
ÄÇôÎÒÃÇÀ´ÏëÏóÁíÒ»ÖÖÇé¿ö£¬Èç¹ûa·µ»ØµÄ²»ÊǺ¯Êýb£¬Çé¿ö¾ÍÍêÈ«²»Í¬ÁË¡£ÒòΪaÖ´ÐÐÍêºó£¬bûÓб»·µ»Ø¸øaµÄÍâ½ç£¬Ö»ÊDZ»aËùÒýÓ㬶ø´ËʱaÒ²Ö»»á±»bÒýÓã¬Òò´Ëº¯ÊýaºÍb»¥ÏàÒýÓõ«ÓÖ²»±»Íâ½ç´òÈÅ(±»Íâ½çÒýÓÃ)£¬º¯ÊýaºÍb¾Í»á±»GC»ØÊÕ¡£(¹ØÓÚJavascriptµÄÀ¬»ø»ØÊÕ»úÖÆ½«ÔÚºóÃæÏêϸ½éÉÜ)
Èý¡¢±Õ°üÄÚµÄ΢¹ÛÊÀ½ç
Èç¹ûÒª¸ü¼ÓÉîÈëµÄÁ˽â±Õ°üÒÔ¼°º¯ÊýaºÍǶÌ׺¯ÊýbµÄ¹ØÏµ£¬ÎÒÃÇÐèÒªÒýÈëÁíÍ⼸¸ö¸ÅÄº¯ÊýµÄÖ´Ðл·¾³(excution context)¡¢»î¶¯¶ÔÏó(call object)¡¢×÷ÓÃÓò(scope)¡¢×÷ÓÃÓòÁ´(scope chain)¡£ÒÔº


Ïà¹ØÎĵµ£º

Ò»¸ö¸ü¸ßЧµÄJavaScript°ætrimº¯Êý

http://code.google.com/p/update-javascript-trim/
³£¼ûµÄд·¨Îª£º
function trim(s){
return s.replace(/^\s+|\s+$/g, '');
}

ÓÅ»¯ºótrimº¯ÊýµÄ´úÂëÈçÏ£º
function trim(str) {
str = str.replace(/^\s+/g, '');
for(var i = str.length - 1; i >= 0; i--){
if(!/^\s$/.test(str.substr(i,1) ......

JavascriptÁ½¸öСÇɵÄ×Ô¶¨Òå×Ö·û´®¸ñʽ»¯º¯Êý

document.close();
document.open();
function jsonFormat(template, json) {
return template.replace(/\$\{(.+?)\}/g, function ($, $1) {
return json[$1];
});
}
var links = [
{ text: "ÈËÈâËÑË÷", url: "http://renrousousuo.com" } ,
{ text: "CSDN", url: &qu ......

40 ¸öÇáÁ¿¼¶ JavaScript ¿â

Á÷ÐÐµÄ JavaScript ¿â²»Ê¤Ã¶¾Ù£¬jQuery, MooTools, Prototype, Dojo, YUI¡£ÕâЩ JavaScript ¿â¹¦Äܷḻ£¬¼ÓÉÏËüÃǵIJå¼þ£¬¼¸ºõÄÜʤÈÎÈκι¤×÷£¬È»¶øÕâÊÇÓдú¼ÛµÄ£¬ÕâЩ¿âÍùÍùµ¼ÖÂÄãµÄÍøÒ³³ß´çÓ·Öס£ÔÚijЩ³¡ºÏ£¬Èç¹ûÄãÖ»ÏëÍê³ÉÌØ¶¨µÄ¹¤×÷£¬¿ÉÒÔʹÓà һЩ¹¦ÄܸüרһµÄÇáÁ¿¿â£¬±¾ÎĽéÉÜÁË40¸ö·Ç³£³öÉ«µÄÇáÁ¿¼¶ JavaScript ¿â¡ ......

IEÓëFirefoxÏÂjavascript getyearÄê·ÝµÄ¼æÈÝÐÔд·¨

                    ǰ¼¸ÌìÔÚ²âÊÔÍøÕ¾¼æÈÝÐÔÎÊÌ⣬·¢ÏÖÔ­À´ÔÚIEÏÂÃæÕý³£µÄÏÔʾʱ¼äÔÚFirefox»ñÈ¡Äê·ÝÏÂÏÔʾ109
                &nb ......

Javascript²Ù×÷SelectºÍOption

×¢Òâ:OptionÖеÄOÊÇÒª´óдµÄ£¬²»È»Óï·¨±¨´í
1.¶¯Ì¬´´½¨select
      function createSelect(){
var mySelect = document.createElement("select");
          mySelect.id = "mySelect"; 
        ......
© 2009 ej38.com All Rights Reserved. ¹ØÓÚE½¡ÍøÁªÏµÎÒÃÇ | Õ¾µãµØÍ¼ | ¸ÓICP±¸09004571ºÅ