javascript µÄ±Õ°ü
±Õ°ü£¨closure£©ÊÇJavascriptÓïÑÔµÄÒ»¸öÄѵ㣬ҲÊÇËüµÄÌØÉ«£¬ºÜ¶à¸ß¼¶Ó¦Óö¼ÒªÒÀ¿¿±Õ°üʵÏÖ¡£
ÏÂÃæ¾ÍÊÇÎÒµÄѧϰ±Ê¼Ç£¬¶ÔÓÚJavascript³õѧÕßÓ¦¸ÃÊǺÜÓÐÓõġ£
Ò»¡¢±äÁ¿µÄ×÷ÓÃÓò
ÒªÀí½â±Õ°ü£¬Ê×ÏȱØÐëÀí½âJavascriptÌØÊâµÄ±äÁ¿×÷ÓÃÓò¡£
±äÁ¿µÄ×÷ÓÃÓòÎ޷ǾÍÊÇÁ½ÖÖ£ºÈ«¾Ö±äÁ¿ºÍ¾Ö²¿±äÁ¿¡£
JavascriptÓïÑÔµÄÌØÊâÖ®´¦£¬¾ÍÔÚÓÚº¯ÊýÄÚ²¿¿ÉÒÔÖ±½Ó¶ÁÈ¡È«¾Ö±äÁ¿¡£
¡¡¡¡var n=999;
¡¡¡¡function f1(){
¡¡¡¡¡¡¡¡alert(n);
¡¡¡¡}
¡¡¡¡f1(); // 999
ÁíÒ»·½Ã棬ÔÚº¯ÊýÍⲿ×ÔÈ»ÎÞ·¨¶ÁÈ¡º¯ÊýÄڵľֲ¿±äÁ¿¡£
¡¡¡¡function f1(){
¡¡¡¡¡¡¡¡var n=999;
¡¡¡¡}
¡¡¡¡alert(n); // error
ÕâÀïÓÐÒ»¸öµØ·½ÐèҪעÒ⣬º¯ÊýÄÚ²¿ÉùÃ÷±äÁ¿µÄʱºò£¬Ò»¶¨ÒªÊ¹ÓÃvarÃüÁî¡£Èç¹û²»ÓõĻ°£¬Äãʵ¼ÊÉÏÉùÃ÷ÁËÒ»¸öÈ«¾Ö±äÁ¿£¡
¡¡¡¡function f1(){
¡¡¡¡¡¡¡¡n=999;
¡¡¡¡}
¡¡¡¡f1();
¡¡¡¡alert(n); // 999
¶þ¡¢ÈçºÎ´ÓÍⲿ¶ÁÈ¡¾Ö²¿±äÁ¿£¿
³öÓÚÖÖÖÖÔÒò£¬ÎÒÃÇÓÐʱºòÐèÒªµÃµ½º¯ÊýÄڵľֲ¿±äÁ¿¡£µ«ÊÇ£¬Ç°ÃæÒѾ˵¹ýÁË£¬Õý³£Çé¿öÏ£¬ÕâÊÇ°ì²»µ½µÄ£¬Ö»ÓÐͨ¹ý±äͨ·½·¨²ÅÄÜʵÏÖ¡£
ÄǾÍÊÇÔÚº¯ÊýµÄÄÚ²¿£¬ÔÙ¶¨ÒåÒ»¸öº¯Êý¡£
¡¡¡¡function f1(){
¡¡¡¡¡¡¡¡n=999;
¡¡¡¡¡¡¡¡function f2(){
¡¡¡¡¡¡¡¡¡¡¡¡alert(n); // 999
¡¡¡¡¡¡¡¡}
¡¡¡¡}
ÔÚÉÏÃæµÄ´úÂëÖУ¬º¯Êýf2¾Í±»°üÀ¨ÔÚº¯Êýf1ÄÚ²¿£¬Õâʱf1ÄÚ²¿µÄËùÓоֲ¿±äÁ¿£¬¶Ôf2¶¼ÊǿɼûµÄ¡£µ«ÊÇ·´¹ýÀ´¾Í²»ÐУ¬f2ÄÚ²¿µÄ¾Ö²¿±äÁ¿£¬¶Ôf1¾ÍÊDz»¿É¼ûµÄ¡£Õâ¾ÍÊÇJavascriptÓïÑÔÌØÓеēÁ´Ê½×÷ÓÃÓò”½á¹¹£¨chain
scope£©£¬×Ó¶ÔÏó»áÒ»¼¶Ò»¼¶µØÏòÉÏÑ°ÕÒËùÓи¸¶ÔÏóµÄ±äÁ¿¡£ËùÒÔ£¬¸¸¶ÔÏóµÄËùÓбäÁ¿£¬¶Ô×Ó¶ÔÏó¶¼ÊǿɼûµÄ£¬·´Ö®Ôò²»³ÉÁ¢¡£
¼ÈÈ»f2¿ÉÒÔ¶ÁÈ¡f1Öеľֲ¿±äÁ¿£¬ÄÇôֻҪ°Ñf2×÷Ϊ·µ»ØÖµ£¬ÎÒÃDz»¾Í¿ÉÒÔÔÚf1Íⲿ¶ÁÈ¡ËüµÄÄÚ²¿±äÁ¿ÁËÂð£¡
¡¡¡¡function f1(){
¡¡¡¡¡¡¡¡n=999;
¡¡¡¡¡¡¡¡function f2(){
¡¡¡¡¡¡¡¡¡¡¡¡alert(n);
¡¡¡¡¡¡¡¡}
¡¡¡¡¡¡¡¡return f2;
¡¡¡¡}
¡¡¡¡var result=f1();
¡¡¡¡result(); // 999
Èý¡¢±Õ°üµÄ¸ÅÄî
ÉÏÒ»½Ú´úÂëÖеÄf2º¯Êý£¬¾ÍÊDZհü¡£
¸÷ÖÖרҵÎÄÏ×Éϵē±Õ°ü”£¨closure£©¶¨Òå·Ç³£³éÏ󣬺ÜÄÑ¿´¶®¡£ÎÒµÄÀí½âÊÇ£¬±Õ°ü¾ÍÊÇÄܹ»¶ÁÈ¡ÆäËûº¯ÊýÄÚ²¿±äÁ¿µÄº¯Êý¡£
ÓÉÓÚÔÚJavascriptÓïÑÔÖУ¬Ö»Óк¯ÊýÄÚ²¿µÄ×Óº¯Êý²ÅÄܶÁÈ¡¾Ö²¿±äÁ¿£¬Òò´Ë¿ÉÒ԰ѱհü¼òµ¥Àí½â³É“¶¨ÒåÔÚÒ»¸öº¯ÊýÄÚ²¿µÄº¯Êý”¡£
ËùÒÔ£¬ÔÚ±¾ÖÊÉÏ£¬±Õ°ü¾ÍÊǽ«º¯ÊýÄÚ²¿ºÍº¯ÊýÍⲿÁ¬½ÓÆðÀ´µÄÒ»×ùÇÅÁº¡£
ËÄ¡¢±Õ°üµÄÓÃ;
±Õ°ü¿ÉÒÔÓÃÔÚÐ
Ïà¹ØÎĵµ£º
ÔÚjavascriptÖжÔÏóͨ³£°üÀ¨Á½ÖÖÀàÐÍ£ºÄÚÖöÔÏóºÍä¯ÀÀÆ÷¶ÔÏ󣬴ËÍ⣬Óû§»¹¿ÉÒÔ×Ô¶¨Òå¶ÔÏó¡£
¶ÔÏó°üº¬Á½¸öÒªËØ£º1.ÓÃÀ´ÃèÊö¶ÔÏóÌØÐÔµÄÒ»×éÊý¾Ý£¬Ò²¾ÍÊÇÈô¸É±äÁ¿£¬Í¨³£³ÆΪÊôÐÔ¡£2.ÓÃÀ´²Ù×÷¶ÔÏóÌØÐÔµÄÈô¸É¶¯×÷£¬Ò²¾ÍÊÇÈô¸Éº¯Êý£¬Í¨³£³ÆΪ·½·¨¡£
ä¯ÀÀÆ÷¶ÔÏó
¶ÔÏó
º¬Òå
anchor
µ±Ç°ÎĵµÖÐÉèÖÃÁËnameÊôÐԵij¬Á´½Ó
appl ......
document¶ÔÏó:
¶ÔÏóÊôÐÔ:
¡¡¡¡
document.alinkColor
//¼¤»îÁ´½Ó(½¹µãÔÚ´ËÁ´½ÓÉÏ)µÄÑÕÉ«
document.all
//±íʾÎĵµÖÐËùÓÐHTML±ê¼Ç·ûµÄÊý×é
document.anchors
//±íʾÎĵµÖÐËùÓÐêµÄÊý×飬êÊÇÖ¸´øÓÐnameÊôÐÔµÄA¶ÔÏó
document.applets
//±íʾÎĵµÖÐËùÓÐjavaСӦÓóÌÐò
document.b ......
×î½üÔÚÍøÉϲéÔÄÁ˲»ÉÙJavascript±Õ°ü(closure)Ïà¹ØµÄ×ÊÁÏ£¬Ð´µÄ´ó¶àÊǷdz£µÄѧÊõºÍרҵ¡£¶ÔÓÚ³õѧÕßÀ´Ëµ±ð˵Àí½â±Õ°üÁË£¬¾ÍÁ¬ÎÄ×ÖÐðÊö¶¼ºÜÄÑ¿´¶®¡£×«Ð´´ËÎĵÄÄ¿µÄ¾ÍÊÇÓÃ×îͨË×µÄÎÄ×Ö½Ò¿ªJavascript±Õ°üµÄÕæʵÃæÄ¿¡£
Ò»¡¢Ê²Ã´ÊDZհü£¿
“¹Ù·½”µÄ½âÊÍÊÇ£ºËùν“±Õ°ü”£¬Ö¸µÄÊÇÒ»¸öÓµÓÐÐí¶à±äÁ¿ºÍ°ó¶¨Á ......
JavaScriptºÜ³£Ó㬵«Ò²ÒòΪÆä²»¼æÈÝÐÔºÜÁîÈËÍ·ÌÛ¡£Ò»¸öÁíÀàµÄ½â
¾ö·½·¨¾ÍÊÇ£¬½«ÆäËûÓïÑÔ±àÒëΪJavaScript¡£±¾ÎÄÁоÙÁËGWT¡¢Smalltalk¡¢PythonµÈÓïÑÔ½«JavaScript×öΪ±àÒëÄ¿±êµÄÇé
¿ö¡£
¸ã¹ýWeb¿ª·¢µÄ¶¼»ò¶à»òÉÙÃþ¹ýJavaScript£¬¶ø¾¡¹ÜJavascriptÎÞ´¦²»ÔÚ£¬µ«»¹ÊǺÜÄÑÈÃÈËϲ»¶Ëü¡£ÔÚÀàËÆ
Google V8¡¢Apple/WebKitµÄNi ......
ÔÚ½ñÌìÍøÂ翪·¢·½Ã棬JavaScriptÆðÁ˺ܹؼüµÄ×÷Óã»ÏñjQuery, MooTools, PrototypeµÈµÈJavaScript¿ò¼ÜÒÔ¼°ÆäËüJavaScriptÀà¿âÈÃÎÒÃǵÄÉú»îÇáËÉÁ˲»ÉÙ¡£µ«ÊÇËæ×ÅRich Internet Applications(RIA)µÄÃæÊÀ¼°Ñ¸ËÙÓ¦Óã¬Êéд¸üÇ¿´ó£¬¸ü¼áʵ¿É¿¿µÄJavaScriptµÄÐèÒªÈÕÒæÆÈÇС£
²»¹ÜÄãÊÇJavaSc ......