Ò»¼ÒÖ®ÑÔ£ºËµËµ JavaScript µÄÀà³ÉÔ±µÄ·ÃÎÊ¿ØÖÆ
¿´ÊéµÄʱºòÓöµ½ÕâÑùÒ»¸öÎÊÌ⣬³ÌÐò´úÂëÈçÏÂ
var ob = function(){
var obj = this;
function fn1(){
alert( obj === window );//false
alert( this === window );//ture
}
this.fn2 = function() {
fn1();
}
}
µ±Ê±ºÜ²»Ã÷°×fn1ÀïÃæµÚ¶þ¸öalertµÄ½á¹û£¬ÎªÊ²Ã´this»áÖ¸Ïòwindow£¿
ÎÒÔÚȺÀïÌÖÂÛÕâ¸öÎÊÌ⣬Òý·¢Ò»³¡¹ØÓÚjs˽Óк¯ÊýµÄÌÖÂÛ£¬½ñÌìÎÒ¾Í˵˵jsµÄÀà³ÉÔ±·ÃÎÊ¿ØÖÆ£¬Ö£ÖØÉùÃ÷ÕâÖ»ÊÇÎҵĸöÈ˹۵㣬½ö¹©ÌÖÂÛ¡£
ËùνjsµÄÀà³ÉÔ±·ÃÎÊ»úÖÆ¾ÍÊdz£ËµµÄ¹«¹²³ÉÔ±¡¢Ë½ÓгÉÔ±¡¢±£»¤³ÉÔ±¡£
1 ¹«¹²³ÉÔ±public member
jsʵÏÖ¹«¹²·½·¨ÊÇͨ¹ýprototypeÊôÐÔ£¬prototypeÊÇÿ¸ö¶ÔÏó¶¼¾ßÓеÄÒ»¸öÌØ±ðµÄ³ÉÔ±£¬Ëü¶¨ÒåÁ˶ÔÏóµÄÄÚ²¿½á¹¹£¬ºÜÀàËÆÆäËûÃæÏò¶ÔÏóÓïÑÔ£¨±ÈÈçC++£©µÄ´«Í³µÄÀࣨClass£©£¬Èç¹ûÄã¶ÔÃæÏò¶ÔÏó²»Á˽⣬¾Í°ÑËüÀí½âΪһ¸ö¶ÔÏóµÄÀ¶Í¼£¬Ò»µ©Ëü±»Ð޸ģ¬ÄÇôËùÓÐÕâ¸ö¶ÔÏóµÄʵÀýºÍ¼Ì³ÐÕâ¸ö¶ÔÏóµÄʵÀý¶¼»á·¢Éú¸Ä±ä£¨ÓеãÞÖ¿Ú£©¡£
¾Ù¸öÀý×Ó
// ´´½¨Ò»¸ö¹¹Ôì·½·¨
function myConstructor(message) {
alert(message);
this.myMessage = message;
}
// Ìí¼ÓÒ»¸ö¹«¹²·½·¨
myConstructor.prototype.clearMessage = function(string) {
this.myMessage += ' ' + string;
}
//ʵÀýÒ»¸ö¶ÔÏó£¬Í¨¹ýʵÀýµ÷ÓöÔÏóµÄ¹«¹²·½·¨
var myObject = new myConstructor('Hello World!');
myObject.clearMessage();
µ«ÊÇÎÒÃDz»ÄÜÖ±½ÓÓÃmyConstructor.clearMessage()£¬ÒòΪmyConstructor±¾ÉíÊÇFunction¶ÔÏóµÄʵÀý£¬¶øFunction±¾ÉíÊÇûÓÐclearMessage()Õâ¸ö·½·¨µÄ¡£
¹ØÓÚprototypeÎÒÏë¶à˵һµã£¬¹ØÓÚprototypeÁ´£¬ÒòΪÿ¸ö¶ÔÏó¶¼ÓÐÒ»¸öprototypeÊôÐÔ£¬¶øprototype±¾ÉíÒ²ÊÇÒ»¸ö¶ÔÏó£¬ËùÒÔËüÒ²¿ÉÒÔ°üº¬×Ô¼ºprototype£¬ÕâÑù¾ÍÐγÉÁËÒ»¸öÁ´Ìõ£¬Ö±µ½Á´ÌõµÄ×îÄ©¶Ë¾ÍÊÇprototypeΪnull
¾Ù¸öÀý×Ó
// µÚÒ»¸ö¹¹Ôì·½·¨
lor: #0000ff;">function MyObject1(formalParameter){
//±£»¤³ÉÔ±£¨ºóÃæ»áÌÖÂÛ£¬ÕâÀï¿ÉÒÔÀí½âΪ¹«¹²·½·¨£©
this.testNumber = formalParameter;
}
//µÚ¶þ¸ö¹¹Ôì·½·¨
function MyObject2(formalParameter){
//±£»¤³ÉÔ±
this.testString = formalParameter;
}
//°ÑµÚÒ»¸ö¶ÔÏóµÄʵÀý¸³¸øµÚ¶þ¸ö¶ÔÏóµÄprototypeÊôÐÔ
MyObject2.prototype = new MyObject1( 8 );
//×îºó£¬ÊµÀý»¯µÚ¶þ¸ö¶ÔÏó
var objectRef = new MyObject2( "String_Value" );
/
Ïà¹ØÎĵµ£º
function getCookies(name)
{
var arr = document.cookie.match(new RegExp("(^| )"+name+"=([^;]*)(;|$)"));
if(arr != null) return unescape(arr[2]); return '';
}
function setCookie(name, value, expires,
function getCookies(name)
{
var a ......
·Ò룺Ϊ֮Âþ±Ê
Á´½Ó£ºhttp://www.cn-cuckoo.com/2007/08/01/understand-javascript-closures-72.html
¼ò½é
»ùÓÚ¶ÔÏóµÄÊôÐÔÃû½âÎö
ÖµµÄÖ¸¶¨
ÖµµÄ¶ÁÈ¡
±êʶ·û½âÎö¡¢Ö´Ðл·¾³ºÍ×÷ÓÃÓòÁ´
Ö´Ðл·¾³
×÷ÓÃÓòÁ´Óë [[scope]]
±êʶ·û½âÎö
±Õ°ü
×Ô¶¯À¬»øÊÕ¼¯
¹¹³É±Õ°ü
ͨ¹ý±Õ°ü¿ÉÒÔ×öʲô£¿
Àý 1£ºÎªº¯Êý ......
Ò»¡¢Ê²Ã´ÊDZհü£¿ ¡°¹Ù·½¡±µÄ½âÊÍÊÇ£º±Õ°üÊÇÒ»¸öÓµÓÐÐí¶à±äÁ¿ºÍ°ó¶¨ÁËÕâЩ±äÁ¿µÄ»·¾³µÄ±í´ïʽ£¨Í¨³£ÊÇÒ»¸öº¯Êý£©£¬Òò¶øÕâЩ±äÁ¿Ò²ÊǸñí´ïʽµÄÒ»²¿·Ö¡£
ÏàÐźÜÉÙÓÐÈËÄÜÖ±½Ó¿´¶®Õâ¾ä»°£¬ÒòΪËûÃèÊöµÄ̫ѧÊõ¡£ÆäʵÕâ¾ä»°Í¨Ë×µÄÀ´Ëµ¾ÍÊÇ£ºJavaScriptÖÐËùÓеÄfunction¶¼ÊÇÒ»¸ö±Õ°ü¡£²»¹ýÒ»°ãÀ´Ëµ£¬Ç¶Ì×µÄfunctionËù²úÉúµÄ± ......
/**
* JavaScript ÊÇÃæÏò¶ÔÏóµÄÓïÑÔ£¬µ«ÊÇËûµÄÃæÏò¶ÔÏó²»ÊÇ»ùÓÚÀàµÄ£¬ÊÇ»ùÓÚÔÐ͵Ä;
* µ«ÊÇËûµÄÒ»Ð©ÌØÐÔ(º¯ÊýÊÇÊý¾Ý)£¬Ê¹µÃËü¿ÉÒÔÄ£Äâ»ùÓÚÀàµÄÃæÏò¶ÔÏ󣬵«ÊÇ JavaScript ²¢²»Ö§³ÖºÍ Java Ò»ÑùµÄÀ࣬
* Òò´Ë JavaScript ÖеÄ"Àà"¿ÉÒÔ³Æ×÷"αÀà"
*/
//
/**
* ¹¹Ô캯Êý: js ÖÐÓÃÀ´ºÍ new ÔËËã·ûÒ»ÆðʹÓõĺ¯Êý³Æ× ......
ÔÚJSÖУ¬´´½¨¶ÔÏó£¨Create Object£©²¢²»ÍêÈ«ÊÇÎÒÃÇʱ³£ËµµÄ´´½¨Àà¶ÔÏó£¬JSÖеĶÔÏóÇ¿µ÷µÄÊÇÒ»ÖÖ¸´ºÏÀàÐÍ£¬JSÖд´½¨¶ÔÏó¼°¶Ô¶ÔÏóµÄ·ÃÎÊÊǼ«ÆäÁé»îµÄ¡£
JS¶ÔÏóÊÇÒ»ÖÖ¸´ºÏÀàÐÍ£¬ËüÔÊÐíÄãͨ¹ý±äÁ¿Ãû´æ´¢ºÍ·ÃÎÊ£¬»»Ò»ÖÖ˼·£¬¶ÔÏóÊÇÒ»¸öÎÞÐòµÄÊôÐÔ¼¯ºÏ£¬¼¯ºÏÖеÄÿһÏî¶¼ÓÉÃû³ÆºÍÖµ×é³É£¨ÌýÆðÀ´ÊDz»ÊǺÜÏñÎÒÃdz£Ìý˵µÄHASH±í¡¢× ......