HTML5¼¼Êõ

¡¾javascript¡¿º¯ÊýÖеÄthisµÄËÄÖÖ°ó¶¨ÐÎʽ ¡ª ´ó¼Ò×¼±¸ºÃ¹Ï×Ó£¬ÎÒÒª½²¹ÊÊÂÀ²~~ - ÍâÆŵÄÅíºþÍå

×ÖºÅ+ ×÷ÕߣºH5Ö®¼Ò À´Ô´£ºH5Ö®¼Ò 2017-08-16 11:00 ÎÒÒªÆÀÂÛ( )

javascriptÖеÄthisºÍº¯ÊýϢϢÏà¹Ø£¬ËùÒÔ½ñÌ죬ÎҾ͸ø´ó¼ÒÏêϸµØ½²ÊöÒ»·¬£ºjavascriptº¯ÊýÖеÄthis һ̸µ½this£¬ºÜ¶àÈÃÈËÔÎÔκõºõµÄ³éÏó¸ÅÄî¾ÍÅܳöÀ´ÁË£¬ ÕâÀïÎÒ¾Íֻ˵×îºËÐĵÄÒ»µãº¯ÊýÖеÄthis×ÜÖ¸Ïòµ÷ÓÃËüµÄ¶ÔÏó £¬½ÓÏÂÀ´µÄ¹Êʶ¼½«Î§ÈÆÕâÒ»µãÕ¹¿ª £¨ÌáÐÑ

 

 javascriptÖеÄthisºÍº¯ÊýϢϢÏà¹Ø£¬ËùÒÔ½ñÌ죬ÎҾ͸ø´ó¼ÒÏêϸµØ½²ÊöÒ»·¬£ºjavascriptº¯ÊýÖеÄthis

 

һ̸µ½this£¬ºÜ¶àÈÃÈËÔÎÔκõºõµÄ³éÏó¸ÅÄî¾ÍÅܳöÀ´ÁË£¬ÕâÀïÎÒ¾Íֻ˵×îºËÐĵÄÒ»µã——º¯ÊýÖеÄthis×ÜÖ¸Ïòµ÷ÓÃËüµÄ¶ÔÏ󣬽ÓÏÂÀ´µÄ¹Êʶ¼½«Î§ÈÆÕâÒ»µãÕ¹¿ª

 

£¨ÌáÐÑÇ°ÅŵÄͲ×ÓÃÇ×¼±¸ºÃ²èË®ºÍÎ÷¹Ï£¬ÎÒÒª¿ªÊ¼½²¹ÊÊÂÀ²£¡£¡£©

 

 

¡¾¹ÊÊ¡¿ÓÐÒ»¸öÄêÇáÈ˽Ð"µÏ˹"£¨this£©,ÓÐÒ»Ì죬µÏ˹²»Ð¡ÐÄ´©Ô½µ½Ò»¸ö½Ð “Ù¤Íß˹¿ËÀû”£¨javascript£©µÄ ÒìÊÀ½ç£¬´Ëʱ´Ë¿ÌµÏ˹ÉíÎÞ·ÖÎÄ£¬ ËûÊ×ÏÈÒª×öµÄÊÂÇé¾ÍÊÇ——ÕÒµ½ËûµÄסË޵ĵط½——µ÷Óú¯ÊýµÄ¶ÔÏó

 

 

thisµÄĬÈÏ°ó¶¨

 

¡¾¹ÊÊ——Ïß·1¡¿Èç¹ûµÏ˹£¨this£©Ö±µ½ÌìºÚÇ°¶¼Ã»ÓÐÕÒµ½ÄÜÊÕÁô×Ô¼ºµÄסËù£¬ËûÑÛ¿´¾ÍÒª¹ýÉÏ·ÇÖÞÄÑÃñµÄÉú»î£¬ Õâʱºò£¬Ò»Î»ÀÖÉƺÃÊ©µÄħ·¨Ê¦´å³¤——window¾ÈÊÀÖ÷Ò»°ãµØ³öÏÖÁË£ºÏÈסÔÚÎÒ¼Ò°É£¡

 

 

¡¾ÕýÎÄ¡¿

µ±Ò»¸öº¯ÊýûÓÐÃ÷È·µÄµ÷ÓöÔÏóµÄʱºò£¬Ò²¾ÍÊǵ¥´¿×÷Ϊ¶ÀÁ¢º¯Êýµ÷ÓõÄʱºò£¬½«¶Ôº¯ÊýµÄthisʹÓÃĬÈϰ󶨣º°ó¶¨µ½È«¾ÖµÄwindow¶ÔÏó

function fire () {      console.log(this === window) } fire(); // Êä³ötrue

 

ÉÏÃæµÄÀý×ÓÎÒÏàÐŶԴó¶àÊýÈ˶¼ºÜ¼òµ¥£¬µ«ÓеÄʱºòÎÒÃÇ°ÑÀý×Ó±äһϾͻá¾ßÓÐÃÔ»óÐÔ£º

function fire () {   // ÎÒÊDZ»¶¨ÒåÔÚº¯ÊýÄÚ²¿µÄº¯ÊýŶ£¡      function innerFire() {   console.log(this === window)       }      innerFire(); // ¶ÀÁ¢º¯Êýµ÷Óà } fire(); // Êä³ötrue

 

 

º¯Êý innerFireÔÚÒ»¸öÍⲿº¯ÊýfireÀïÃæÉùÃ÷ÇÒµ÷Óã¬ÄÇôËüµÄthisÊÇÖ¸ÏòË­ÄØ£¿ ÈÔÈ»ÊÇwindow

 

Ðí¶àÈË¿ÉÄÜ»á¹ËÂÇÓÚfireº¯ÊýµÄ×÷ÓÃÓò¶ÔinnerFireµÄÓ°Ï죬µ«ÎÒÃÇֻҪץסÎÒÃǵÄÀíÂÛÎäÆ÷——ûÓÐÃ÷È·µÄµ÷ÓöÔÏóµÄʱºò£¬½«¶Ôº¯ÊýµÄthisʹÓÃĬÈϰ󶨣º°ó¶¨µ½È«¾ÖµÄwindow¶ÔÏ󣬱ã¿ÉµÃÕýÈ·µÄ´ð°¸ÁË

 

ÏÂÃæÕâ¸ö¼ÓÇ¿°æµÄÀý×ÓÒ²ÊÇͬÑùµÄÊä³ötrue

var obj = {    fire: function () {        function innerFire() {           console.log(this === window)         }         innerFire();   // ¶ÀÁ¢º¯Êýµ÷Óà      } } obj.fire(); //Êä³ö true

 

¡¾×¢Òâ¡¿ÔÚÕâ¸öÀý×ÓÖУ¬ obj.fire()µÄµ÷ÓÃʵ¼ÊÉÏʹÓõ½ÁËthisµÄÒþʽ°ó¶¨£¬Õâ¾ÍÊÇÏÂÃæÎÒÒª½²µÄÄÚÈÝ£¬Õâ¸öÀý×ÓÎÒ½ÓÏÂÀ´»¹»á¼ÌÐø½²½â

 

¡¾×ܽ᡿ ·²Êº¯Êý×÷Ϊ¶ÀÁ¢º¯Êýµ÷Óã¬ÎÞÂÛËüµÄλÖÃÔÚÄÄÀËüµÄÐÐΪ±íÏÖ£¬¶¼ºÍÖ±½ÓÔÚÈ«¾Ö»·¾³Öе÷ÓÃÎÞÒì

 

thisµÄÒþʽ°ó¶¨

¡¾¹ÊÊ——Ïß·2¡¿ µÏ˹£¨this£©´©Ô½À´ÒìÊÀ½ç“Ù¤Íß˹¿ËÀû”£¨javascript£©µÄʱºò£¬¸ÕºÃÉíÉÏ´øÁËһЩǮ£¬ÓÚÊÇËûÕÒµ½Ò»¸öÂùÝסËÞÁËÏÂÀ´

 

 

 

 

µ±º¯Êý±»Ò»¸ö¶ÔÏó“°üº¬”µÄʱºò£¬ÎÒÃdzƺ¯ÊýµÄthis±»Òþʽ°ó¶¨µ½Õâ¸ö¶ÔÏóÀïÃæÁË£¬Õâʱºò£¬Í¨¹ýthis¿ÉÒÔÖ±½Ó·ÃÎÊËù°ó¶¨µÄ¶ÔÏóÀïÃæµÄÆäËûÊôÐÔ£¬±ÈÈçÏÂÃæµÄaÊôÐÔ

 

var obj = {      a: 1,       fire: function () {            console.log(this.a)         } } obj.fire(); // Êä³ö1

 

 

ÏÖÔÚÎÒÃÇÐèÒª¶Ôƽ³£Ë¾¿Õ¼û¹ßµÄµÄ´úÂë²Ù×÷×öһЩ¸üÉîµÄ˼¿¼£¬Ê×ÏÈ£¬ÏÂÃæµÄÕâÁ½¶Î´úÂë´ïµ½µÄЧ¹ûÊÇÏàͬµÄ£º

// ÎÒÊǵÚÒ»¶Î´úÂë function fire () {       console.log(this.a) }    var obj = {       a: 1,       fire: fire   } obj.fire(); // Êä³ö1   obj = {         a: 1,         fire: function () {              console.log(this.a)          } } obj.fire(); // Êä³ö1

 

 

fireº¯Êý²¢²»»áÒòΪËü±»¶¨ÒåÔÚobj¶ÔÏóµÄÄÚ²¿ºÍÍⲿ¶øÓÐÈκÎÇø±ð£¬Ò²¾ÍÊÇ˵ÔÚÉÏÊöÒþʽ°ó¶¨µÄÁ½ÖÖÐÎʽÏ£¬fireͨ¹ýthis»¹ÊÇ¿ÉÒÔ·ÃÎʵ½objÄÚµÄaÊôÐÔ£¬Õâ¸æËßÎÒÃÇ£º

 

1.  thisÊǶ¯Ì¬°ó¶¨µÄ£¬»òÕß˵ÊÇÔÚ´úÂëÔËÐÐÆڰ󶨶ø²»ÊÇÔÚÊéдÆÚ

2.  º¯ÊýÓÚ¶ÔÏóµÄ¶ÀÁ¢ÐÔ£¬ thisµÄ´«µÝ¶ªÊ§ÎÊÌâ

 

£¨ÏÂÃæµÄÃèÊö¿ÉÄÜ´øÓиöÈ˵ÄÇé¸ÐÇãÏò¶øÏԵò»Ì«ÑϽ÷£¬µ«ÕâÊÇÒòΪÎÒÏ£ÍûÔĶÁÕß¾¡¿ÉÄܵØÀí½âÎÒÏë±í´ïµÄÒâ˼£©

Òþʽ°ó¶¨Ï£¬×÷Ϊ¶ÔÏóÊôÐԵĺ¯Êý£¬¶ÔÓÚ¶ÔÏóÀ´ËµÊǶÀÁ¢µÄ

 

»ùÓÚthis¶¯Ì¬°ó¶¨µÄÌص㣬дÔÚ¶ÔÏóÄÚ²¿£¬×÷Ϊ¶ÔÏóÊôÐԵĺ¯Êý£¬¶ÔÓÚÕâ¸ö¶ÔÏóÀ´ËµÊǶÀÁ¢µÄ¡££¨º¯Êý²¢²»±»Õâ¸öÍⲿ¶ÔÏóËùÍêÈ«ÓµÓД£©

 

¡¡

1.±¾Õ¾×ñÑ­ÐÐÒµ¹æ·¶£¬ÈκÎתÔصĸå¼þ¶¼»áÃ÷È·±ê×¢×÷ÕߺÍÀ´Ô´£»2.±¾Õ¾µÄÔ­´´ÎÄÕ£¬ÇëתÔØʱÎñ±Ø×¢Ã÷ÎÄÕÂ×÷ÕߺÍÀ´Ô´£¬²»×ðÖØÔ­´´µÄÐÐΪÎÒÃǽ«×·¾¿ÔðÈΣ»3.×÷ÕßͶ¸å¿ÉÄܻᾭÎÒÃDZ༭Ð޸Ļò²¹³ä¡£

Ïà¹ØÎÄÕÂ
  • angular»òÕßjsÈçºÎÈ·¶¨Ñ¡ÖÐulÖеÄÄļ¸¸öli - ·ãÊ÷ϵķç

    angular»òÕßjsÈçºÎÈ·¶¨Ñ¡ÖÐulÖеÄÄļ¸¸öli - ·ãÊ÷ϵķç

    2017-08-16 10:01

  • ¡¾javascript¡¿Ïê½âjavaScriptµÄÉ±´ - ÍâÆŵÄÅíºþÍå

    ¡¾javascript¡¿Ïê½âjavaScriptµÄÉ±´ - ÍâÆŵÄÅíºþÍå

    2017-08-15 12:01

  • ÎÒÑÛÖеÄASP.NET Core֮΢·þÎñ (¶þ) - Savorboard

    ÎÒÑÛÖеÄASP.NET Core֮΢·þÎñ (¶þ) - Savorboard

    2017-07-21 11:00

  • ¹ØÓÚmeta±êÇ©ÖеÄhttp-equivÊôÐÔʹÓýéÉÜ - ÓèÄ­óÏ

    ¹ØÓÚmeta±êÇ©ÖеÄhttp-equivÊôÐÔʹÓýéÉÜ - ÓèÄ­óÏ

    2017-07-18 15:00

ÍøÓѵãÆÀ
á