Äú¿ÉÒÔ¾èÖú£¬Ö§³ÖÎÒÃǵĹ«ÒæÊÂÒµ¡£

1Ôª 10Ôª 50Ôª





ÈÏÖ¤Â룺  ÑéÖ¤Âë,¿´²»Çå³þ?Çëµã»÷Ë¢ÐÂÑéÖ¤Âë ±ØÌî



  ÇóÖª ÎÄÕ ÎÄ¿â Lib ÊÓÆµ iPerson ¿Î³Ì ÈÏÖ¤ ×Éѯ ¹¤¾ß ½²×ù Modeler   Code  
»áÔ±   
 
   
 
 
     
   
 ¶©ÔÄ
  ¾èÖú
¸ßÐÔÄÜJavascript£º¸ßЧµÄÊý¾Ý·ÃÎÊ
 
ת×ÔÍøÂç £¬»ðÁú¹ûÈí¼þ    ·¢²¼ÓÚ 2014-11-17
  2857  次浏览      27
 

¾­µä¼ÆËã»ú¿ÆÑ§µÄÒ»¸öÎÊÌâÊÇ£¬Êý¾ÝÓ¦µ±´æ·ÅÔÚʲôµØ·½£¬ÒÔʵÏÖ×î¼ÑµÄ¶ÁдЧÂÊ¡£Êý¾Ý´æ´¢ÊÇ·ñµÃµ±£¬¹ØÏµµ½´úÂëÔËÐÐÆÚ¼äÊý¾Ý±»¼ìË÷µ½µÄËÙ¶È¡£ÔÚJavascriptÖУ¬´ËÎÊÌâÏà¶Ô¼òµ¥£¬ÒòΪÊý¾Ý±íÏÖ·½Ê½Ö»ÓÐÉÙÁ¿·½Ê½¿É¹©Ñ¡Ôñ¡£ÔÚJavascriptÖУ¬ÓÐËÄÖÖ»ù±¾µÄÊý¾Ý·ÃÎÊλÖãº

1.Literal values Ö±½ÓÁ¿

Ö±½ÓÁ¿½ö½ö´ú±í×Ô¼º£¬¶ø²»´æ´¢ÓÚÌØ¶¨µÄλÖá£

JavascriptµÄÖ±½ÓÁ¿°üÀ¨£º×Ö·û´®(strings)¡¢Êý×Ö(numbers)¡¢²¼¶ûÖµ(booleans)¡¢¶ÔÏó(objects)¡¢Êý×é(arrays)¡¢º¯Êý(functions)¡¢ÕýÔò±í´ïʽ(regular expressions)£¬¾ßÓÐÌØÊâÒâÒåµÄ¿ÕÖµ(null)£¬ÒÔ¼°Î´¶¨Òå(undefined)¡£

2.Variables ±äÁ¿

¿ª·¢ÈËÔ±ÓÃvar¹Ø¼ü×Ö´´½¨ÓÃÓÚ´æ´¢Êý¾ÝÖµ¡£

3.Array items Êý×éÏî

¾ßÓÐÊý×ÖË÷Òý£¬´æ´¢Ò»¸öJavascriptÊý×é¶ÔÏó¡£

4.Object members ¶ÔÏó³ÉÔ±

¾ßÓÐ×Ö·û´®Ë÷Òý£¬´æ´¢Ò»¸öJavascript¶ÔÏó¡£

ÿһÖÖÊý¾Ý´æ´¢Î»Öö¼¾ßÓÐÌØ¶¨µÄ¶Áд²Ù×÷¸ºµ£¡£ÔÚ´ó¶àÊýÇé¿öÏ£¬¶ÔÒ»¸öÖ±½ÓÁ¿ºÍÒ»¸ö¾Ö²¿±äÁ¿µÄÊý¾Ý·ÃÎʵÄÐÔÄܲîÒìÊÇ΢²»×ãµÀµÄ¡£¾ßÌå¶øÑÔ£¬·ÃÎÊÊý×éÏîºÍ¶ÔÏó³ÉÔ±µÄ´ú¼ÛÒª¸ßһЩ£¬¾ßÌå¸ß¶àÉÙ£¬ºÜ´ó³Ì¶ÈÉÏÈ¡¾öÓÚä¯ÀÀÆ÷¡£Ò»°ãµÄ½¨ÒéÊÇ£¬Èç¹û¹ØÐÄÔËÐÐËÙ¶È£¬ÄÇô¾¡Á¿Ê¹ÓÃÖ±½ÓÁ¿ºÍ¾Ö²¿±äÁ¿£¬ÏÞÖÆÊý×éÏîºÍ¶ÔÏó³ÉÔ±µÄʹÓá£Îª´Ë£¬ÓÐÈçϼ¸ÖÖģʽ£¬ÓÃÓÚ±ÜÃâ²¢ÓÅ»¯ÎÒÃǵĴúÂ룺

Managing Scope ¹ÜÀí×÷ÓÃÓò

×÷ÓÃÓò¸ÅÄîÊÇÀí½âJavascriptµÄ¹Ø¼ü£¬ÎÞÂÛÊÇ´ÓÐÔÄÜ»¹Êǹ¦ÄܵĽǶȶøÑÔ£¬×÷ÓÃÓò¶ÔJavascriptÓÐמ޴óÓ°Ïì¡£ÒªÀí½âÔËÐÐËÙ¶ÈÓë×÷ÓÃÓòµÄ¹ØÏµ£¬Ê×ÏÈÒªÀí½â×÷ÓÃÓòµÄ¹¤×÷Ô­Àí¡£

Scope Chains and Identifier Resolution ×÷ÓÃÓòÁ´ºÍ±êʶ·û½âÎö

ÿһ¸öJavascriptº¯Êý¶¼±»±íʾΪ¶ÔÏó£¬ËüÊÇÒ»¸öº¯ÊýʵÀý¡£Ëü°üº¬ÎÒÃDZà³Ì¶¨ÒåµÄ¿É·ÃÎÊÊôÐÔ£¬ºÍһϵÁв»Äܱ»³ÌÐò·ÃÎÊ£¬½ö¹©JavascriptÒýÇæÊ¹ÓõÄÄÚ²¿ÊôÐÔ£¬ÆäÖÐÒ»¸öÄÚ²¿ÊôÐÔÊÇ[[Scope]]£¬ÓÉECMA-262±ê×¼µÚÈý°æ¶¨Òå¡£

ÄÚ²¿[[Scope]]ÊôÐÔ°üº¬Ò»¸öº¯Êý±»´´½¨µÄ×÷ÓÃÓòÖжÔÏóµÄ¼¯ºÏ¡£´Ë¼¯ºÏ±»³ÆÎªº¯ÊýµÄ×÷ÓÃÓòÁ´£¬Ëü¾ö¶¨ÄÄЩÊý¾Ý¿ÉÒÔÓɺ¯Êý·ÃÎÊ¡£´Ëº¯ÊýÖÐ×÷ÓÃÓòÁ´ÖÐÿ¸ö¶ÔÏó±»³ÆÎªÒ»¸ö¿É±ä¶ÔÏó£¬ÒÔ¡°¼üÖµ¶Ô¡±±íʾ¡£µ±Ò»¸öº¯Êý´´½¨ÒÔºó£¬ËüµÄ×÷ÓÃÓòÁ´±»Ìî³äÒÔ¶ÔÏó£¬ÕâЩ¶ÔÏó´ú±í´´½¨´Ëº¯ÊýµÄ»·¾³ÖпɷÃÎʵÄÊý¾Ý£º

function add(num1, num2){ 
¡¡¡¡var sum = num1 + num2;
¡¡ return sum;
}

µ±add()º¯Êý´´½¨ÒÔºó£¬ËüµÄ×÷ÓÃÓòÁ´ÖÐÌîÈëÁËÒ»¸öµ¥¶À¿É±ä¶ÔÏ󣬴ËÈ«¾Ö¶ÔÏó´ú±íÁËËùÓÐÈ«¾Ö·¶Î§¶¨ÒåµÄ±äÁ¿¡£´ËÈ«¾Ö¶ÔÏó°üº¬ÖîÈç´°¿Ú¡¢ä¯ÀÀÆ÷ºÍÎĵµÖ®ÀàµÄ·ÃÎʽӿڡ£ÈçÏÂͼËùʾ£º£¨add()º¯ÊýµÄ×÷ÓÃÓòÁ´£¬×¢ÒâÕâÀïÖ»»­³öÈ«¾Ö±äÁ¿ÖкÜÉÙµÄÒ»²¿·Ö£©

addº¯ÊýµÄ×÷ÓÃÓòÁ´½«»áÔÚÔËÐÐʱÓõ½£¬¼ÙÉèÔËÐÐÁËÈçÏ´úÂ룺

var total = add(5,10);

ÔËÐдËaddº¯Êýʱ»á½¨Á¢Ò»¸öÄÚ²¿¶ÔÏ󣬳Æ×÷¡°ÔËÐÐÆÚÉÏÏÂÎÄ¡±(execution context)£¬Ò»¸öÔËÐÐÆÚÉÏÏÂÎ͍ÒåÁËÒ»¸öº¯ÊýÔËÐÐʱµÄ»·¾³¡£ÇÒ¶ÔÓÚµ¥¶ÀµÄÿ´ÎÔËÐжøÑÔ£¬Ã¿¸öÔËÐÐÆÚÉÏÏÂÎͼÊǶÀÁ¢µÄ£¬¶à´Îµ÷Óþͻá²úÉú¶à´Ë´´½¨¡£¶øµ±º¯ÊýÖ´ÐÐÍê±Ï£¬ÔËÐÐÆÚÉÏÏÂÎı»Ïú»Ù¡£

Ò»¸öÔËÐÐÆÚÉÏÏÂÎÄÓÐ×Ô¼ºµÄ×÷ÓÃÓòÁ´£¬ÓÃÓÚ½âÎö±êʶ·û¡£µ±ÔËÐÐÆÚÉÏÏÂÎı»´´½¨µÄʱ£¬ËüµÄ×÷ÓÃÓò±»³õʼ»¯£¬Á¬Í¬ÔËÐк¯ÊýµÄ×÷ÓÃÓòÁ´[[Scope]]ÊôÐÔËù°üº¬µÄ¶ÔÏó¡£ÕâЩֵ°´ÕÕËüÃdzöÏÖÔÚº¯ÊýÖеÄ˳Ðò£¬±»¸´ÖƵ½ÔËÐÐÆÚÉÏÏÂÎĵÄ×÷ÓÃÓòÁ´ÖС£ÕâÏ×÷Ò»µ©Ö´ÐÐÍê±Ï£¬Ò»¸ö±»³Æ×÷¡°¼¤»î¶ÔÏó¡±µÄжÔÏó¾ÍλÔËÐÐÆÚÉÏÏÂÎÄ´´½¨ºÃÁË¡£´Ë¼¤»î¶ÔÏó×÷Ϊº¯ÊýÖ´ÐÐÆÚÒ»¸ö¿É±ä¶ÔÏ󣬰üº¬ÁË·ÃÎÊËùÓоֲ¿±äÁ¿£¬ÃüÃû²ÎÊý£¬²ÎÊý¼¯ºÏºÍthisµÄ½Ó¿Ú¡£È»ºó£¬´Ë¶ÔÏó±»ÍÆÈëµ½×÷ÓÃÓòÁ´µÄ×îǰ¶Ë¡£µ±×÷ÓÃÓòÁ´±»Ïú»Ùʱ£¬¼¤»î¶ÔÏóҲһͬ±»Ïú»Ù¡£ÈçÏÂËùʾ£º£¨ÔËÐÐadd()ʱµÄ×÷ÓÃÓòÁ´£©

ÔÚº¯ÊýÔËÐеĹý³ÌÖУ¬Ã¿Óöµ½Ò»¸ö±äÁ¿£¬¾ÍÒª½øÐбêʶ·ûʶ±ð¡£±êʶ·ûʶ±ðÕâ¸ö¹ý³ÌÒª¾ö¶¨´ÓÄÄÀï»ñµÃÊý¾Ý»òÕß´æÈ¡Êý¾Ý¡£´Ë¹ý³ÌËÑË÷ÔËÐÐÆÚÉÏÏÂÎĵÄ×÷ÓÃÓòÁ´£¬²éÕÒͬÃûµÄ±êʶ·û¡£ËÑË÷¹¤×÷´ÓÔËÐк¯ÊýµÄ¼¤»îÄ¿±êµÄ×÷ÓÃÓòǰ¶Ë¿ªÊ¼¡£Èç¹ûÕÒµ½ÁË£¬¾ÍʹÓÃÕâ¸ö¾ßÓÐÖ¸¶¨±êʶ·ûµÄ±äÁ¿£»Èç¹ûûÕÒµ½£¬ËÑË÷¹¤×÷½«½øÈë×÷ÓÃÓòÁ´µÄÏÂÒ»¸ö¶ÔÏ󣬴˹ý³Ì³ÖÐøÔËÐУ¬Ö±µ½±êʶ·û±»ÕÒµ½»òÕßûÓиü¶à¿ÉÓöÔÏó¿ÉÓÃÓÚËÑË÷£¬ÕâÖÖÇé¿öÊÓΪ±êʶ·û䶨Òå¡£ÕýÊÇÕâÖÖËÑË÷¹ý³ÌÓ°ÏìÁËÐÔÄÜ¡£

Identifier Resolution Performance ±êʶ·ûʶ±ðÐÔÄÜ

±êʶ·ûʶ±ðÊǺÄÄܵġ£

ÔÚÔËÐÐÆÚÉÏÏÂÎĵÄ×÷ÓÃÓòÁ´ÖУ¬Ò»¸ö±êʶ·ûËù´¦µÄλÖÃÔ½ÉËüµÄ¶ÁдËٶȾÍÔ½Âý¡£ËùÒÔ£¬º¯ÊýÖоֲ¿±äÁ¿µÄ·ÃÎÊËÙ¶È×ÜÊÇ×î¿ìµÄ£¬¶øÈ«¾Ö±äÁ¿Í¨³£ÊÇ×îÂýµÄ£¨ÓÅ»¯JavascriptÒýÇæ£¬ÈçSafariÔÚijЩÇé¿öÏ¿ÉÓøıäÕâÖÖÇé¿ö£©¡£

Çë¼Çס£¬È«¾Ö±äÁ¿×ÜÊÇ´¦ÓÚÔËÐÐÆÚÉÏÏÂÎÄ×÷ÓÃÓòÁ´µÄ×îºóÒ»¸öλÖã¬ËùÒÔ×ÜÊÇ×îÔ¶²ÅÄܱ»·ÃÎʵġ£Ò»¸öºÃµÄ¾­Ñé·¨ÔòÊÇ£ºÊ¹Óþֲ¿±äÁ¿´æ´¢±¾µØ·¶Î§Ö®ÍâµÄ±äÁ¿Öµ£¬Èç¹ûËüÃÇÔÚº¯ÊýÖеÄʹÓöàÓÚÒ»´Î¡£¿¼ÂÇÏÂÃæµÄÀý×Ó£º

function initUI(){
¡¡¡¡var bd = document.body,
¡¡¡¡links = document.getElementsByTagName("a"),
¡¡¡¡i = 0,
¡¡¡¡len = links.length;

¡¡¡¡while(i < len){
¡¡¡¡¡¡¡¡update(links[i++]);
¡¡¡¡}

document.getElementById("go-btn").onclick = function(){
¡¡¡¡¡¡¡¡start();
¡¡¡¡};

¡¡¡¡bd.className = "active";

´Ëº¯Êý°üº¬Èý¸ö¶ÔdocumentµÄÒýÓ㬶ødocumentÊÇÒ»¸öÈ«¾Ö¶ÔÏó¡£ËÑË÷ÖÁdocument£¬±ØÐë±éÀúÕû¸ö×÷ÓÃÓòÁ´£¬Ö±µ½×îºó²ÅÄÜÕÒµ½Ëü¡£Ê¹ÓÃÏÂÃæµÄ·½·¨¼õÇáÖØ¸´µÄÈ«¾Ö±äÁ¿·ÃÎʶÔÐÔÄܵÄÓ°Ï죺

function initUI(){
var doc=document,
¡¡ bd = doc.body,
¡¡¡¡links = doc.getElementsByTagName("a"),
¡¡¡¡i = 0,
¡¡¡¡len = links.length;

¡¡¡¡while(i < len){
¡¡¡¡¡¡¡¡update(links[i++]);
¡¡¡¡}

doc.getElementById("go-btn").onclick = function(){
¡¡¡¡¡¡¡¡start();
¡¡¡¡};

¡¡¡¡bd.className = "active";
}

ÓÃdoc´úÌædocument¸ü¿ì£¬ÒòΪËüÊÇÒ»¸ö¾Ö²¿±äÁ¿¡£µ±È»£¬Õâ¸ö¼òµ¥µÄº¯Êý²»»áÏÔʾ³ö¾Þ´óµÄÐÔÄܸĽø£¬ÒòΪÊýÁ¿µÄÔ­Òò£¬²»¹ý¿ÉÒÔÏëÏóһϣ¬Èç¹û¼¸Ê®¸öÈ«²¿±äÁ¿·´¸´±»·ÃÎÊ£¬ÄÇôÐÔÄܸĽø½«ÏԵöàô³öÉ«¡£

Scope Chain Augmentation ¸Ä±ä×÷ÓÃÓòÁ´

Ò»¸öÀ´Ëµ£¬Ò»¸öÔËÐÐÆÚÉÏÏÂÎĵÄ×÷ÓÃÓòÁ´²»»á±»¸Ä±ä¡£µ«ÊÇ£¬ÓÐÁ½ÖÖ±í´ïʽ¿ÉÒÔÔÚÔËÐÐʱÁÙʱ¸Ä±äÔËÐÐÆÚÉÏÏÂÎÄ¡£µÚÒ»¸öÊÇwith±í´ïʽ£º

function initUI(){
with (document){ //avoid!
var bd = body,
links = getElementsByTagName("a"),
i = 0,
len = links.length;

while(i < len){
update(links[i++]);
}

getElementById("go-btn").onclick = function(){
start();
};

bd.className = "active";
}
}

´ËÖØÐ´°æ±¾Ê¹ÓÃÁËÒ»¸öwith±í´ïʽ£¬±ÜÃâÁ˶à´ÎÊéд¡°document¡±¡£Õâ¿´ÆðÀ´Ëƺõ¸üÓÐЧÂÊ£¬Êµ¼Ê²»È»£¬ÕâÀï²úÉúÁËÒ»¸öÐÔÄÜÎÊÌâ¡£

µ±´úÂëÁ÷Ö´Ðе½Ò»¸öwith±í´ïʽ£¬ÔËÐÐÆÚÉÏÏÂÎĵÄ×÷ÓÃÓò±»ÁÙʱ¸Ä±äÁË¡£Ò»¸öеĿɱä¶ÔÏ󽫱»´´½¨£¬Ëü°üº¬ÁËÖ¸¶¨¶ÔÏó£¨Õë¶ÔÕâ¸öÀýÌâÊÇdocument¶ÔÏ󣩵ÄËùÓÐÊôÐÔ¡£´Ë¶ÔÏó±»²åÈëµ½×÷ÓÃÓòÁ´µÄ×îǰ¶Ë¡£Òâζ×ÅÏÖÔÚº¯ÊýµÄËùÓоֲ¿±äÁ¿¶¼±»ÍÆÈëµ½µÚ¶þ¸ö×÷ÓÃÓòÁ´¶ÔÏóÖУ¬ËùÒÔ¾Ö²¿±äÁ¿µÄ·ÃÎÊ´ú¼Û±äµÄ¸ü¸ßÁË¡£

ÕýʽÒòΪÕâ¸öÔ­Òò£¬×îºÃ²»ÒªÊ¹ÓÃwith±í´ïʽ¡£ÕâÑù»áµÃ²»³¥Ê§¡£ÕýÈçÇ°ÃæÌáµ½µÄ£¬Ö»Òª¼òµ¥µÄ½«document´æ´¢ÔÚÒ»¸ö¾Ö²¿±äÁ¿ÖУ¬¾Í¿ÉÒÔ»ñµÃÐÔÄÜÉϵÄÌáÉý¡£

ÁíÒ»¸öÄܸıäÔËÐÐÆÚÉÏÏÂÎĵÄÊÇtry-catchÓï¾äµÄ×Ö¾äcatch¾ßÓÐͬÑùµÄЧ¹û¡£µ±try¿é·¢Éú´íÎóµÄʱ£¬³ÌÐò×Ô¶¯×ªÈëcatch¿é£¬²¢½«ËùÓоֲ¿±äÁ¿ÍÆÈëµÚ¶þ¸ö×÷ÓÃÓòÁ´¶ÔÏóÖУ¬Ö»ÒªcatchÖ®¿éÖ´ÐÐÍê±Ï£¬×÷ÓÃÓòÁ´¾Í»á·µ»Øµ½Ô­À´µÄ״̬¡£

try { 
methodThatMightCauseAnError();
} catch (ex){
alert(ex.message); //×÷ÓÃÓòÁ´ÔÚÕâÀï·¢Éú¸Ä±ä
}

Èç¹ûʹÓõõ±£¬try-catch±í´ïʽÊǷdz£ÓÐÓõÄÓï¾ä£¬ËùÒÔ²»½¨ÒéÍêÈ«±ÜÃâ¡£µ«ÊÇÒ»¸ötry-catchÓï¾ä²»Ó¦¸Ã×÷ΪJavascript´íÎó½â¾öµÄ°ì·¨£¬Èç¹ûÄãÖªµÀÒ»¸ö´íÎó»á¾­³£·¢Éú£¬ÄÇô˵Ã÷Ó¦¸ÃÐ޸ĴúÂë±¾Éí¡£²»ÊÇô£¿

Dynamic Scope ¶¯Ì¬×÷ÓÃÓò

ÎÞÂÛÊÇwith±í´ïʽ»¹ÊÇtry-catch±í´ïʽµÄ×Ó¾äcatch£¬ÒÔ¼°°üº¬()µÄº¯Êý£¬¶¼±»ÈÏΪÊǶ¯Ì¬×÷ÓÃÓò¡£Ò»¸ö¶¯Ì¬×÷ÓÃÓòÒò´úÂëÔËÐжøÉú³É´æÔÚ£¬Òò´ËÎÞ·¨Í¨¹ý¾²Ì¬·ÖÎö£¨Í¨¹ý²é¿´´úÂ룩À´È·¶¨ÊÇ·ñ´æÔÚ¶¯Ì¬×÷ÓÃÓò¡£ÀýÈ磺

function execute(code) { 
¡¡¡¡(code);
¡¡¡¡function subroutine(){
¡¡¡¡ return window;
}
¡¡¡¡var w = subroutine(); // wµÄÖµÊÇʲô£¿
};

execute()º¯Êý¿´ÉÏÈ¥ÏñÒ»¸ö¶¯Ì¬×÷ÓÃÓò£¬ÒòΪËüʹÓÃÁË()¡£w±äÁ¿µÄÖµÓë´«ÈëµÄcode´úÂëÓйء£´ó¶àÊýÇé¿öÏ£¬w½«µÈ¼ÛÓÚÈ«¾ÖµÄwindow¶ÔÏó¡£µ«ÊÇÈç¹û´«ÈëµÄÊÇ:

execute("var window = {};");

ÕâÖÖÇé¿öÏ£¬()ÔÚexecute()º¯ÊýÖд´½¨ÁËÒ»¸ö¾Ö²¿window±äÁ¿¡£ËùÒÔw½«µÈ¼ÛÓÚÕâ¸ö¾Ö²¿window±äÁ¿¶ø²»ÊÇÈ«¾ÖwindowµÄÄǸö¡£ËùÒÔ²»ÔËÐÐÕâ¶Î´úÂëÊÇÎÞ·¨Ô¤Öª×îºóµÄ¾ßÌåÇé¿ö£¬±êʶ·ûwindowµÄÈ·Çк¬ÒåÎÞ·¨Ô¤ÏÈÖªµÀ¡£

Òò´Ë£¬Ö»ÓÐÔÚ¾ø¶Ô±ØÒªÊ±¿Ì²ÅÍÆ¼öʹÓö¯Ì¬×÷ÓÃÓò¡£

Closure,Scope,and Memory ±Õ°ü£¬×÷ÓÃÓò£¬ºÍÄÚ´æ

±Õ°üÊÇJavascript×îÇ¿´óµÄÒ»¸ö·½Ã棬ËüÔÊÐíº¯Êý·ÃÎʾֲ¿·¶Î§Ö®ÍâµÄµÄÊý¾Ý¡£ÎªÁ˽âÓë±Õ°üÓйصÄÐÔÄÜÎÊÌ⣬¿¼ÂÇÏÂÃæµÄÀý×Ó£º

function assignEvents(){
¡¡¡¡var id = "xdi9592";
¡¡¡¡document.getElementById("save-btn").onclick = function(event){
¡¡¡¡¡¡¡¡saveDocument(id);
};
}

assignEvents()º¯ÊýΪDOMÔªËØÖ¸¶¨ÁËÒ»¸öʼþ´¦Àí¾ä±ú¡£´Ëʼþ´¦ÀíÊÇÒ»¸ö±Õ°ü£¬µ±º¯ÊýÖ´Ðд´½¨Ê±¿ÉÒÔ·ÃÎÊÆä·¶Î§ÄÚ²¿µÄid±äÁ¿¡£¶øÕâÖÖ·½·¨·â±ÕÁ˶Ôid±äÁ¿µÄ·ÃÎÊ£¬±ØÐë´´½¨Ò»¸öÌØ¶¨µÄ×÷ÓÃÓòÁ´¡£

µ±assignEvents()º¯ÊýÖ´ÐÐʱ£¬Ò»¸ö¼¤»î¶ÔÏó±»´´½¨£¬²¢ÇÒ°üº¬ÁËһЩӦÓеÄÄÚÈÝ£¬ÆäÖаüº¬id±äÁ¿¡£Ëü½«³ÉΪÔËÐÐÆÚÉÏÏÂÎÄ×÷ÓÃÓòÁ´ÉϵĵÚÒ»¸ö¶ÔÏó£¬È«¾Ö¶ÔÏóÊǵڶþ¸ö¡£µ±±Õ°ü´´½¨µÄʱ£¬[[Scope]]ÊôÐÔÓëÕâЩ¶ÔÏóÒ»Æð±»³õʼ»¯£¬ÈçÏÂͼ£º

ÓÉÓÚ±Õ°üµÄ[[Scope]]ÊôÐÔ°üº¬ÓëÔËÐÐÆÚÉÏÏÂÎÄ×÷ÓÃÓòÁ´ÏàͬµÄ¶ÔÏóÒýÓ㬻á²úÉú¸±×÷Óã¬Í¨³££¬Ò»¸öº¯ÊýµÄ¼¤»î¶ÔÏóÓëÔËÐÐÆÚÉÏÏÂÎÄһͬÏú»Ù¡£µ±Éæ¼°±Õ°üʱ£¬¼¤»î¶ÔÏó¾ÍÎÞ·¨Ïú»ÙÁË£¬ÒòΪÈÔÈ»´æÔÚÓÚ±Õ°üµÄ[[Scope]]ÊôÐÔÖС£ÕâÒâζ׎ű¾ÖеıհüÓë·Ç±Õ°üº¯ÊýÏà±È£¬ÐèÒª¸ü¶àµÄÄڴ濪Ïú¡£ÓÈÆäÔÚIE£¬Ê¹Ó÷DZ¾µØJavascript¶ÔÏóʵÏÖDOM¶ÔÏ󣬱հü¿ÉÄܵ¼ÖÂÄÚ´æÐ¹Â¶¡£

µ±±Õ°ü±»Ö´ÐУ¬Ò»¸öÔËÐÐÆÚÉÏÏÂÎĽ«±»´´½¨£¬ËüµÄ×÷ÓÃÓòÁ´Óë[[Scope]]ÖÐÒýÓõÄÁ½¸öÏàͬµÄ×÷ÓÃÓòÁ´Í¬Ê±±»³õʼ»¯£¬È»ºóÒ»¸öÐµļ¤»î¶ÔÏóΪ±Õ°ü×ÔÉí´´½¨¡£ÈçÏÂͼ£º

¿ÉÒÔ¿´µ½£¬idºÍsaveDocumentÁ½¸ö±êʶ·û´æÔÚÓÚ×÷ÓÃÓòÁ´µÚÒ»¸ö¶ÔÏóÖ®ºóµÄλÖá£ÕâÊDZհü×îÖ÷ÒªµÄÐÔÄܹØ×¢µã£ºÄã¾­³£·ÃÎÊһЩ·¶Î§Ö®ÍâµÄ±êʶ·û£¬Ã¿´Î·ÃÎʶ¼½«µ¼ÖÂһЩÐÔÄÜËðʧ¡£

Ôڽű¾ÖÐ×îºÃСÐĵÄʹÓñհü£¬ÄÚ´æºÍÔËÐÐËٶȶ¼ÖµµÃ±»¹Ø×¢¡£µ«ÊÇ£¬Äã¿ÉÒÔͨ¹ýÉÏÎÄ̸µ½µÄ£¬½«³£ÓõÄÓòÍâ±äÁ¿´æÈë¾Ö²¿±äÁ¿ÖУ¬È»ºóÖ±½Ó·ÃÎʾֲ¿±äÁ¿¡£

Object Members ¶ÔÏó³ÉÔ±

¶ÔÏó³ÉÔ±°üÀ¨ÊôÐԺͷ½·¨£¬ÔÚJavascriptÖУ¬¶þÕß²î±ðÉõ΢¡£¶ÔÏóµÄÒ»¸öÃüÃû³ÉÔ±¿ÉÒÔ°üº¬ÈκÎÊý¾ÝÀàÐÍ¡£¼ÈÈ»º¯ÊýÒ²ÊÇÒ»ÖÖ¶ÔÏó£¬ÄÇô¶ÔÏó³ÉÔ±³ýÁË´«Í³Êý¾ÝÀàÐÍÍ⣬Ҳ¿ÉÒÔ°üº¬º¯Êý¡£µ±Ò»¸öÃüÃû³ÉÔ±ÒýÓÃÁËÒ»¸öº¯Êýʱ£¬Ëü±»³Æ×÷Ò»¸ö¡°·½·¨¡±£¬¶øÒ»¸ö·Çº¯ÊýÀàÐ͵ÄÊý¾ÝÔò±»³Æ×÷¡°ÊôÐÔ¡±¡£

ÈçǰËùÑÔ£¬¶ÔÏó³ÉÔ±µÄ·ÃÎʱÈÖ±½ÓÁ¿ºÍ¾Ö²¿±äÁ¿·ÃÎÊËÙ¶ÈÂý£¬ÔÚijЩä¯ÀÀÆ÷ÉϱȷÃÎÊÊý×黹Âý£¬ÕâÓëJavascriptÖжÔÏóµÄÐÔÖÊÓйء£

Prototype Ô­ÐÍ¡¡¡¡

JavascriptÖеĶÔÏóÊÇ»ùÓÚÔ­Ð͵ģ¬Ò»¸ö¶ÔÏóͨ¹ýÄÚ²¿ÊôÐ԰󶨵½ËüµÄÔ­ÐÍ¡£Firefox£¬SafariºÍChromeÏò¿ª·¢ÈËÔ±¿ª·ÅÕâÒ»ÊôÐÔ£¬³Æ×÷_proto_¡£ÆäËûä¯ÀÀÆ÷²»ÔÊÐí½Å±¾·ÃÎÊÕâ¸öÊôÐÔ¡£ÈκÎʱºòÎÒÃÇ´´½¨Ò»¸öÄÚÖÃÀàÐ͵ÄʵÏÖ£¬ÈçObject»òArray£¬ÕâЩʵÀý×Ô¶¯ÓµÓÐÒ»¸öObject×÷ΪËüÃǵÄÔ­ÐÍ¡£¶ø¶ÔÏó¿ÉÒÔÓÐÁ½ÖÖÀàÐ͵ijÉÔ±£ºÊµÀý³ÉÔ±ºÍÔ­ÐͳÉÔ±¡£ÊµÀý³ÉÔ±Ö±½Ó´æÔÚÓÚʵÀý×ÔÉí¶øÔ­ÐͳÉÔ±Ôò´Ó¶ÔÏó¼Ì³Ð¡£¿¼ÂÇÈçÏÂÀý×Ó£º

var book = {
¡¡¡¡title: "High Performance JavaScript",
¡¡ publisher: "Yahoo! Press"
};
alert(book.toString()); //"[object Object]"

´Ë´úÂëÖÐbookÓÐtitleºÍpublisherÁ½¸öʵÀý³ÉÔ±¡£×¢ÒâËü²¢Ã»Óж¨ÒåtoString()½Ó¿Ú£¬µ«Õâ¸ö½Ó¿ÚÈ´±»µ÷ÓÃÇÒûÓÐÅ׳ö´íÎó¡£toString()º¯Êý¾ÍÊÇÒ»¸öbook¼Ì³Ð×ÔÔ­ÐͶÔÏóµÄÔ­ÐͳÉÔ±¡£ÏÂͼ±íʾÁËËüÃǵĹØÏµ£º

´¦Àí¶ÔÏó³ÉÔ±µÄ¹ý³ÌÓë´¦Àí±äÁ¿Ê®·ÖÏàËÆ¡£µ±book.toString()±»µ÷ÓÃʱ£¬¶Ô³ÉÔ±½øÐÐÃûΪ¡°toString¡±µÄËÑË÷£¬Ê×ÏÈ´Ó¶ÔÏóʵÀý¿ªÊ¼£¬Èô¹ûûÓÐÃûΪtoStringµÄ³ÉÔ±£¬ÄÇô¾ÍתÏòËÑË÷Ô­ÐͶÔÏó£¬ÔÚÄÇÀï·¢ÏÖÁËtoString()·½·¨²¢Ö´ÐÐËü¡£Í¨¹ýÕâÖÖ·½·¨£¬book¿ÉÒÔ·ÃÎÊËüµÄÔ­ÐÍËùÓµÓеÄÿ¸öÊôÐԺͷ½·¨¡£

ÎÒÃÇ¿ÉÒÔʹÓÃhasOwnProperty()º¯ÊýÈ·¶¨Ò»¸ö¶ÔÏóÊÇ·ñ¾ßÓÐÌØ¶¨Ãû³ÆµÄʵÀý³ÉÔ±¡£ÊµÀýÂÔ¡£

Prototype Chains Ô­ÐÍÁ´

¶ÔÏóµÄÔ­Ð;ö¶¨ÁËÒ»¸öʵÀýµÄÀàÐÍ¡£Ä¬ÈÏÇé¿öÏ£¬ËùÓжÔÏó¶¼ÊÇObjectµÄʵÀý£¬²¢¼Ì³ÐÁËËùÓлù±¾·½·¨¡£ÈçtoString()¡£ÎÒÃÇÒ²¿ÉÒÔʹÓù¹ÔìÆ÷´´½¨ÁíÍâÒ»ÖÖÔ­ÐÍ¡£ÀýÈ磺

function Book(title, publisher){ 
¡¡¡¡this.title = title;
¡¡¡¡this.publisher = publisher;
}

Book.prototype.sayTitle = function(){
¡¡¡¡alert(this.title);
};
¡¡¡¡var book1 = new Book("High Performance JavaScript", "Prototype Chains");
¡¡¡¡var book2 = new Book("JavaScript: The Good Parts", "Prototype Chains");
¡¡¡¡alert(book1 instanceof Book); //true
¡¡¡¡alert(book1 instanceof Object); //true
¡¡¡¡book1.sayTitle(); //"High Performance JavaScript"
¡¡¡¡alert(book1.toString()); //"[object Object]"

Book¹¹ÔìÆ÷ÓÃÓÚ´´½¨Ò»¸öеÄbookʵÀýbook1¡£book1µÄÔ­ÐÍ£¨_proto_£©ÊÇBook.prototype£¬Book.prototypeµÄÔ­ÐÍÊÇObject¡£Õâ¾Í´´½¨ÁËÒ»ÌõÔ­ÐÍÁ´¡£

×¢Ò⣬book1ºÍbook2¹²ÏíÁËͬһ¸öÔ­ÐÍÁ´¡£Ã¿¸öʵÀýÓµÓÐ×Ô¼ºµÄtitleºÍpublisherÊôÐÔ£¬ÆäËû³ÉÔ±¾ù¼Ì³Ð×ÔÔ­ÐÍ¡£¶øÕýÈçÄãËù»³ÒɵÄÄÇÑù£¬ÉîÈëÔ­ÐÍÁ´Ô½ÉËÑË÷µÄËٶȾͻáÔ½Âý£¬ÌرðÊÇIE£¬Ã¿ÉîÈëÔ­ÐÍÁ´Ò»²ã¶¼»áÔö¼ÓÐÔÄÜËðʧ¡£¼Çס£¬ËÑË÷ʵÀý³ÉÔ±µÄ¹ý³Ì±È·ÃÎÊÖ±½ÓÁ¿ºÍ¾Ö²¿±äÁ¿¸ºµ£¸üÖØ£¬ËùÒÔÔö¼Ó±éÀúÔ­ÐÍÁ´µÄ¿ªÏúÕýºÃ·Å´óÁËÕâÖÖЧ¹û¡£

Nested Members ǶÌ׳ÉÔ±

ÓÉÓÚ¶ÔÏó³ÉÔ±¿ÉÄܰüº¬ÆäËû³ÉÔ±¡£Æ©Èçwindow.location.href(»ñÈ¡µ±Ç°Ò³ÃæµÄurl)ÕâÖÖģʽ¡£Ã¿Óöµ½Ò»¸öµãºÅ(.)£¬JavascriptÒýÇæ¾ÍÒªÔÚ¶ÔÏó³ÉÔ±ÉÏÖ´ÐÐÒ»´Î½âÎö¹ý³Ì£¬¶øÇÒ³ÉԱǶÌ×Ô½É·ÃÎÊËÙ¶ÈÔ½Âý¡£location.href×ÜÊÇ¿ìÓÚwindow.location.href£¬¶øºóÕß±Èwindow.location.href.toString()¸ü¿ì¡£Èç¹ûÕâЩÊôÐÔ²»ÊǶÔÏóµÄʵÀý³ÉÔ±£¬ÄÇô³ÉÔ±½âÎö»¹ÒªÔÚÿ¸öµãÉÏËÑË÷Ô­ÐÍÁ´£¬Õ⽫ÐèÒª¸ü¶àµÄʱ¼ä¡£

Summary ×ܽá

1.ÔÚJavascriptÖУ¬Êý¾Ý´æ´¢Î»ÖÿÉÒÔ¶Ô´úÂëÕûÌåÐÔÄܲúÉúÖØÒªÓ°Ïì¡£ÓÐËÄÖÖÊý¾Ý·ÃÎÊÀàÐÍ£ºÖ±½ÓÁ¿£¬±äÁ¿£¬Êý×éÏ¶ÔÏó³ÉÔ±¡£¶ÔËüÃÇÎÒÃÇÓв»Í¬µÄÐÔÄÜ¿¼ÂÇ¡£

2.Ö±½ÓÁ¿ºÍ¾Ö²¿±äÁ¿µÄ·ÃÎÊËٶȷdz£¿ì£¬¶øÊý×éÏîºÍ¶ÔÏó³ÉÔ±ÐèÒª¸ü³¤Ê±¼ä¡£

3.¾Ö²¿±äÁ¿±ÈÍⲿ±äÁ¿¿ì£¬ÊÇÒòΪËüλÓÚ×÷ÓÃÓòÁ´µÄµÚÒ»¸ö¶ÔÏóÖС£±äÁ¿ÔÚ×÷ÓÃÓòÁ´ÖеÄλÖÃÔ½É·ÃÎÊËùÐèµÄʱ¼ä¾ÍÔ½³¤¡£¶øÈ«¾Ö±äÁ¿×ÜÊÇ×îÂýµÄ£¬ÒòΪËü´¦ÓÚ×÷ÓÃÓòÁ´µÄ×îºóÒ»»·¡£

4.±ÜÃâʹÓÃwith±í´ïʽ£¬ÒòΪËü¸Ä±äÁËÔËÐÐÆÚÉÏÏÂÎĵÄ×÷ÓÃÓòÁ´¡£¶øÇÒÓ¦µ±ÌرðСÐĶԴýtry-catchÓï¾äµÄcatch×Ӿ䣬Ëü¾ßÓÐͬÑùµÄЧ¹û¡£

5.ǶÌ×¶ÔÏó³ÉÔ±»áÔì³ÉÖØ´óÐÔÄÜÓ°Ï죬¾¡Á¿ÉÙÓá£

6.Ò»°ã¶øÑÔ£¬ÎÒÃÇͨ¹ý½«¾­³£Ê¹ÓõĶÔÏó³ÉÔ±£¬Êý×éÏºÍÓòÍâ±äÁ¿´æÈë¾Ö²¿±äÁ¿ÖС£È»ºó£¬·ÃÎʾֲ¿±äÁ¿µÄËÙ¶È»á¿ìÓÚÄÇЩԭʼ±äÁ¿¡£

ͨ¹ýÉÏÊö²ßÂÔ£¬¿ÉÒÔ¼«´óÌá¸ßÄÇЩʹÓÃJavascript´úÂëµÄÍøÒ³Ó¦ÓõÄʵ¼ÊÐÔÄÜ¡£

   
2857 ´Îä¯ÀÀ       27
Ïà¹ØÎÄÕ Ïà¹ØÎĵµ Ïà¹Ø¿Î³Ì



Éî¶È½âÎö£ºÇåÀíÀôúÂë
ÈçºÎ±àд³öÓµ±§±ä»¯µÄ´úÂë
ÖØ¹¹-ʹ´úÂë¸ü¼ò½àÓÅÃÀ
ÍŶÓÏîÄ¿¿ª·¢"±àÂë¹æ·¶"ϵÁÐÎÄÕÂ
ÖØ¹¹-¸ÄÉÆ¼ÈÓдúÂëµÄÉè¼Æ
Èí¼þÖØ¹¹v2
´úÂëÕû½àÖ®µÀ
¸ßÖÊÁ¿±à³Ì¹æ·¶
»ùÓÚHTML5¿Í»§¶Ë¡¢Web¶ËµÄÓ¦Óÿª·¢
HTML 5+CSS ¿ª·¢
ǶÈëʽC¸ßÖÊÁ¿±à³Ì
C++¸ß¼¶±à³Ì
×îл¼Æ»®
DeepSeekÔÚÈí¼þ²âÊÔÓ¦ÓÃʵ¼ù 4-12[ÔÚÏß]
DeepSeek´óÄ£ÐÍÓ¦Óÿª·¢Êµ¼ù 4-19[ÔÚÏß]
UAF¼Ü¹¹ÌåϵÓëʵ¼ù 4-11[±±¾©]
AIÖÇÄÜ»¯Èí¼þ²âÊÔ·½·¨Óëʵ¼ù 5-23[ÉϺ£]
»ùÓÚ UML ºÍEA½øÐзÖÎöÉè¼Æ 4-26[±±¾©]
ÒµÎñ¼Ü¹¹Éè¼ÆÓ뽨ģ 4-18[±±¾©]

AndroidÊÖ»ú¿ª·¢£¨Ò»£©
Àí½âJavascript
·ÇµäÐÍajaxʵ¼ù
³¹µ×µÄAjax
javascript ʹÓÃCookies
ʹÓà jQuery ¼ò»¯ Ajax ¿ª·¢


Struts+Spring+Hibernate
»ùÓÚJ2EEµÄWeb 2.0Ó¦Óÿª·¢
J2EEÉè¼ÆÄ£Ê½ºÍÐÔÄܵ÷ÓÅ
Java EE 5ÆóÒµ¼¶¼Ü¹¹Éè¼Æ
Javaµ¥Ôª²âÊÔ·½·¨Óë¼¼Êõ
Java±à³Ì·½·¨Óë¼¼Êõ


ijº½¿Õ¹«Ë¾IT²¿ JavaScriptʵ¼ù
ijµçÊÓÈí¼þ HTML5ºÍJavaScript
Öк½ÐÅ JavaScript¸ß¼¶Ó¦Óÿª·¢
´óÇìÓÍÌï web½çÃæAjax¿ª·¢¼¼Êõ
ºÍÀûʱ ʹÓÃAJAX½øÐÐWEBÓ¦Óÿª·¢