[·Òë]PPK ̸ JavaScript µÄ this ¹Ø¼ü×Ö
ÔÎÄ£ºJavaScript - The this keyword
ÔÚ JavaScript ÖÐ this ÊÇ×îÇ¿µÄ¹Ø¼ü×ÖÖ®Ò»¡£ÕâÆªÌùÎľÍÊÇÒª¸æËßÄãÈçºÎÓúà this¡£
ÏÂÃæÏȽ²ÈçºÎÔÚevent handling
(ʼþ´¦Àí)ÖÐÓÃËü£¬ÔÙ½Ó×ÅÊǽ² this µÄÆäËûÓ÷¨¡£
ËùÓÐÕß(Owner)
ÏÈÀ´¿´¿´º¯Êý doSomething() ÀïµÄ this ¾¿¾¹Ö¸Ïò(refer to)ÁËʲô£¿
function doSomething() {
this.style.color = '#cc0000';
}
JavaScriptµÄ this ×ÜÊÇÖ¸ÏòÕýÖ´Ðеĺ¯ÊýµÄËùÓÐÕß¡£»òÕßÊÇ˵£¬ËüÊÇÖ¸Ïòº¯ÊýÕâ¸ö¶ÔÏóµÄÒ»ÖÖÊÖ·¨¡£
ÔÚÒ³ÃæÖж¨ÒåÁË
doSomething() º¯Êýʱ£¬ËüµÄËùÓÐÕßÊÇÒ³Ãæ¡£È·ÇеÄ˵ÊÇÖ¸ JavaScript µÄ window ¶ÔÏó(È«¾Ö¶ÔÏó)¡£
¶ø
onclick ÊôÐÔ¹éÊô HTML ÔªËØËùÓС£
ÕâÖÖ¹éÊôËËùÓеÄȨÀûÊÇ JavaScript µÄ OO(ÃæÏò¶ÔÏó)ÌØÐԵĽá¹û¡£ÔÚ °Ñ¶ÔÏó×÷¹ØÁªÊý×é
Ò³ÃæÖÐÓиü¶àÐÅÏ¢¡£
------------ window --------------------------------------
| / \ |
| | |
| this |
| ---------------- | |
| | HTML ÔªËØ | <-- this ----------------- |
| ---------------- | | doSomething() | |
| | | ----------------- |
| -------------------- |
| | onclick ÊôÐÔ | |
| -------------------- |
| |
----------------------------------------------------------
ÕâÀïÔÚ doSomething() Ö´ÐÐʱ£¬¹Ø¼ü×Ö this Ö¸Ïò window(´°¿Ú) £¬¸Ãº¯Êý½«»á¸Ä¶¯ window µÄ style.color¡£
¶ø window ûÓÐ style Õâ¸ö¶ÔÏó£¬ËùÒԸú¯Êý»áÒý·¢ JavaScript µÄ´íÎó¡£
¿½±´(copying)
Òò´Ë£¬ÏëÒªÓúà this ¾ÍÇë¼ÌÐøÍùÏ¿´¡£ÏñÇ°ÃæµÄÀý×ÓÔÚº¯ÊýÖÐʹÓõÄÕâÖÖÇé¿ö£¬this Ö¸ÏòËü¹éÊôËËùÓеÄÄǸö HTML ÔªËØ¡£
Ò²¾ÍÊÇ˵£¬Óиöº¯Êý¿½±´Ö¸Ïò onclick ÊôÐÔ¡£ ÎÒÃÇÀ´¿´¿´ÔÚ´«Í³Ê¼þ×¢²á
ÖеÄÇé¿ö¡£
element.onclick = doSomething;
º¯ÊýÊÇËüÕû¸öµÄ¿½±´£¬Ö¸Ïò onclick ÊôÐÔ(ÏÖÔÚ±ä³ÉÁË·½·¨)¡£Òò´Ë£¬Ê¼þ´¦Àí±»Ö´ÐÐʱ£¬this Ö¸Ïò HTML ÔªËØ²¢½«¸Ä¶¯ color¡£
----------
Ïà¹ØÎĵµ£º
<script>
var flags ;
if(window.XMLHttpRequest) {
XMLHttpReq = new XMLHttpRequest(); //firefoxÏÂÖ´ÐдËÓï¾ä
}
else if(window.ActiveXObject) {
try{
XMLHttpReq = new Acti ......
°´Å¥Ê½£º
¡¡¡¡<INPUT name="pclog" type="button" value="GO" onClick="location.href='url'">
Ö±½ÓÌø×ªÊ½£º
¡¡¡¡<script>window.location.href='url';</script>
<SCRIPT LANGUAGE="javascript">
<!--
window.open
('page.html' ......
ÏÂÃæ¶¼ÊǸöÈËÀí½âÒÔ¼°²éÕÒµÄÍøÉϵÄ×ÊÁÏ,ÈçÓв»¶ÔµÄµØ·½ÇëÖ¸Õý
This
this ʼÖÕÖ¸Ïòµ÷ÓÃËüµÄ¶ÔÏó ,¶¼Ã»ÓжÔÏóµ÷ÓÃʱ¾ÍÖ¸Ïòwindow
ÁíÍâ¾ÍÊÇthisÒ»°ã¶¼ÊÇÔÚfunctionÖÐ,µ±²»ÔÚfunctionÖеÄʱºò Ò»¶¨ÊÇÖ¸ÏòwindowµÄ.
var a ='a';
alert(this.a); //³öÀ´µÄÊÇa
alert(this.b); //undefined ÒòΪ»¹Ã»¶¨Òå ......
Ò»¡¢¸ÅÊö
Marquee£ºHtmlÖйöÆÁ¿Ø¼þ£¬¿ÉÒÔʹ°üº¬Ôڴ˱ê¼ÇÖеÄÄÚÈݽøÐи÷¸ö·½Ïò£¬¸÷ÖÖËٶȵĹö¶¯£¬Òò´ËÔÚ²»¿¼ÂÇʹÓõÚÈý·½¿Ø¼þµÄǰÌáÏ£¬¿¼ÂÇʹÓÃMarquee+xmlhttpÀ´ÊµÏÖ¶¨´Î¸üÐÂÒ³ÃæÖеĹö¶¯ÄÚÈÝ£¬´ËʵÏÖÔÚIE6.0¼°ÒÔÉϰ汾²âÊÔͨ¹ý£¬ÆäËûä¯ÀÀÆ÷ÔÝʱδ²âÊÔ¹ý¡£
MarqueeÖеÄonfinishʼþ£ºÔÚ¸øMarqueeÊôÐÔloop¸ ......
// <!CDATA[
//define
var xmlhttp;
var value=new Array();
var variable=new Array();
//Show Response MSG.
function handleStateChange()
{
var h=document.getElementById("Label1");
if(xmlhttp.readyState==4)
{
if(xmlhttp.status==200)
{
alert(xmlhttp. ......