j**ascript function¡¢Ö¸Õë¼°ÄÚÖöÔÏó

ʱ¼ä£º2016.04.18 ·¢²¼ÈË£ºozmht

j**ascript function¡¢Ö¸Õë¼°ÄÚÖöÔÏó

Òѽâ¾öÎÊÌâ

¹È¸èozmhtÓû§ÔÚ2016.04.18Ìá½»Á˹ØÓÚ¡°Èð·çj**ascript function¡¢Ö¸Õë¼°ÄÚÖöÔÏó¡±µÄÌáÎÊ£¬»¶Ó­´ó¼ÒÓ¿Ô¾·¢±í×Ô¼ºµÄ¹Ûµã¡£Ä¿Ç°¹²ÓÐ1¸ö»Ø´ð£¬×îºó¸üÐÂÓÚ2025-02-27T08:34:58¡£Ï£Íû´ó¼ÒÄܹ»°ïÖúËý¡£

ÏêϸÎÊÌâÃèÊö¼°ÒÉÎÊ£ºÆÚ´ýÄúµÄ´ð°¸£¬ÄãÎÞÒìÓÚÑ©ÖÐËÍÌ¿,ÈÃÎҸм¤ÌéÁã £¡

Ï£ÍûÒÔϵĻشð£¬Äܹ»°ïÖúÄã¡£

µÚ1¸ö»Ø´ð

Óû§Ãû£ºimba_TNt  

º¯ÊýÊǽøÐÐÄ£¿é»¯³ÌÐòÉè¼ÆµÄ»ù´¡£¬±àд¸´ÔÓµÄAjaxÓ¦ÓóÌÐò£¬±ØÐë¶Ôº¯ÊýÓиüÉîÈëµÄÄîÀÏÁ˽⡣
¡¡¡¡j**ascriptÖеĺ¯Êý²»Í¬ÓÚÆäËûµÄÓïÑÔ£¬Ã¿¸öº¯Êý¶¼ÊÇ×÷Ϊһ¸ö¶ÔÏó±»Î¬»¤ºÍÔËÐеġ£Í¨¹ýº¯Êý¶ÔÏóµÄÐÔÖÊ£¬¿ÉÒԺܷ½±ãµÄ½«Ò»¸öº¯Êý¸³Öµ¸øÒ»¸ö±äÁ¿»òÕß½«º¯Êý×÷Ϊ²ÎÊý´«µÝ¡£ÔÚ¼ÌÐø½²Êö֮ǰ£¬ÏÈ¿´Ò»Ïº¯ÊýµÄʹÓÃÓï·¨ÎïÓÅ£º
ÒÔÏÂÊÇÒýÓÃÆ¬¶Î£º
funcÒâµ£ºóºótionfunc1(¡­){¡­}
varfunc2=function(¡­){¡­};
varfunc3=functionfun**(¡­){¡­};
varfunc5=newFunction();
¡¡¡¡ÕâЩ¶¼ÊÇÉùÃ÷º¯ÊýµÄÇÖ³ÂÕýÈ·Óï·¨¡£ËüÃÇºÍÆäËûÓïÑÔÖг£¼ûµÄº¯Êý»ò֮ǰ½éÉܵĺ¯Êý¶¨Ò巽ʽÓÐןܴóµÄÇø±ð¡£ÄÇôÔÚJ**aScriptÖÐΪʲôÄÜÕâôд£¿ËüËù×ñÑ­µÄÓï·¨ÊÇÊ²Ã´ÄØ£¿ÏÂÃæ½«½éÉÜÕâЩÄÚÈÝ¡£
¡¡¡¡ÈÏʶº¯Êý¶ÔÏó£¨FunctionObject£©
¡¡¡¡¿ÉÒÔÓÃfunction¹Ø¼ü×Ö¶¨ÒåÒ»¸öº¯Êý£¬²¢ÎªÃ¿¸öº¯ÊýÖ¸¶¨Ò»¸öº¯ÊýÃû£¬Í¨¹ýº¯ÊýÃûÀ´½øÐе÷Óá£ÔÚJ**aScript½âÊÍÖ´ÐÐʱ£¬º¯Êý¶¼ÊDZ»Î¬»¤ÎªÒ»¸ö¶ÔÏó£¬Õâ¾ÍÊÇÒª½éÉܵĺ¯Êý¶ÔÏó£¨FunctionObject£©¡£
¡¡¡¡º¯Êý¶ÔÏóÓëÆäËûÓû§Ëù¶¨ÒåµÄ¶ÔÏóÓÐ×ÅÆÚÁî±¾ÖʵÄÇø±ð£¬ÕâÒ»Àà¶ÔÏó±»³ÆÖ®Îª**¶ÔÏó£¬ÀýÈçÀ´×ÔÈÕÆÚ¶ÔÏó£¨Date£©¡¢Êý×é¶ÔÏó£¨Array£©¡¢×Ö·û´®¶ÔÏó£¨String£©¶¼ÊôÓÚÄÚ²¿¶ÔÏó¡£ÕâЩÄÚÖöÔÏóµÄ¹¹ÔìÆ÷ÊÇÓÉJ**aScript±¾ÉíËù¶¨ÒåµÄ£ºÍ¨¹ýÖ´ÐÐnewArray()ÕâÑùµÄÓï¾ä·µ»ØÒ»Æû¾Öµô¸ö¶ÔÏó£¬J**aScript**ÓÐÒ»Ì×»úÖÆÀ´³õʼ»¯·µ»ØµÄ¶ÔÏ󣬶ø²»ÊÇÓÉÓû§À´Ö¸¶¨¶ÔÏóµÄ¹¹ÎÊ´ðÔ췽ʽ¡£
¡¡¡¡ÔÚJ**aScriptÖУ¬º¯Êý¶ÔÏó¶ÔÓ¦µÄÀàÐÍÊÇFunction£¬ÕýÈçÊý×é¶ÔÏó¶ÔÓ¦µÄÀàÐÍÊÇArray£¬ÈÕÆÚ¶ÔÏó¶ÔÓ¦µÄÀàÐÍÊÇDateÒ»ËêÑù£¬¿ÉÒÔͨ¹ýnewFunction()À´´´½¨Ò»ºô³Á°ãά»·µ£¸ú¸öº¯Êý¶ÔÏó£¬Ò²¿ÉÒÔͨ¹ýfuҪʷçÏàÐÄץΧÎäΪnction¹Ø¼ü×ÖÑÐ˵À´´´½¨Ò»¸ö¶ÔÏó¡£Îªµô¹ÅÕÆ»ò»¥Á˱ãÓÚÀí½â£¬ÎÒÃDZȽϺ¯Êý¶ÔÏóµÄ´´½¨ºÍÊý×é¶ÔÏóµÄ´´½¨¡£ÏÈ¿´Êý×é¶ÔÏó£ºÏÂÃæÁ½ÐдúÂë¶¼ÊÇ´´½¨Ò»¸öÊý×é¶ÔÏómyArray£º
ÒÔ×ï×èϲֱͨ¾³ÒæÊôÎÊÏÂÊÇÒýÓÃÆ¬¶Î£º
varmyArray=[];
//µÈ¼ÛÓÚ
varmyArray=newArray();
ͬÑù£¬ÏÂÃæµÄÁ½¶Î´úÂëÒ²¶¼°ë»ÓίÊÇ´´½¨Ò»¸öº¯ÊýmyÖÓËÉFunction£º
functionmyFunction(a,b){
returÖÞÈëna+b;
}
//µÈ¼ÛÓÚ
va̽³õÂíÒâÉõÅúrmyFunction=newFunction("a","b","returna+b");
¡¡¡¡Í¨¹ýºÍ¹¹ÔìÊý×é¶ÔÏóÓï¾äµÄ±È½Ï£¬¿ÉÒÔÇå³þµÄ¿´µ½º¯Êý¶ÔÏó±¾ÖÊ£¬Ç°Ãæ½éÉܵĺ¯ÊýÉùÃ÷ÊÇÉÏÊö´úÂëµÄµÚÒ»ÖÖ·½Ê½£¬¶øÔÚ½âÊÍÆ÷**£¬µ±Óöµ½ÕâÖÖÓ﷨ʱ£¬¾Í»á×Ô¶¯¹¹ÔìÒ»¸öFunction¶ÔÏ󣬽«º¯Êý×÷Ϊһ¸ö**µÄ¶ÔÏóÀ´´æ´¢ºÍÔËÐС£´ÓÕâÀïÒ²¿ÉÒÔ¿´µ½£¬Ò»¸öº¯Êý¶ÔÏóÃû³Æ£¨º¯Êý±äÁ¿£©ºÍÒ»¸öÆÕͨ±äÁ¿Ãû³Æ¾ßÓÐͬÑùµÄ¹æ·¶£¬¶¼¿ÉÒÔͨ¹ý±äÁ¿ÃûÀ´ÒýÓÃÕâ¸ö±äÁ¿£¬µ«ÊǺ¯Êý±äÁ¿ÃûºóÃæ¿ÉÒÔ¸úÉÏÀ¨ºÅºÍ²ÎÊýÁбíÀ´½øÐк¯Êýµ÷Óá£
¡¡¡¡ÓÃnewFunction()µÄÐÎʽÀ´´´½¨Ò»¸öº¯Êý²»³£¼û£¬ÒòΪһ¸öº¯ÊýÌåͨ³£»áÓжàÌõÓï¾ä£¬Èç¹û½«ËüÃÇÒÔÒ»¸ö×Ö·û´®µÄÐÎʽ×÷Ϊ²ÎÊý´«µÝ£¬´úÂëµÄ¿É¶ÁÐԲÏÂÃæ½éÉÜÒ»ÏÂÆäʹÓÃÓï·¨£º
ÒÔÏÂÊÇÒýÓÃÆ¬¶Î£º
varfuncName=newFunction(p1,p2,,pn,body);
²ÎÊýµÄÀàÐͶ¼ÊÇ×Ö·û´®£¬p1µ½pn±íʾËù´´½¨º¯ÊýµÄ²ÎÊýÃû³ÆÁÐ±í£¬body±íʾËù´´½¨º¯ÊýµÄº¯ÊýÌåÓï¾ä£¬funcName¾ÍÊÇËù´´½¨º¯ÊýµÄÃû³Æ¡£¿ÉÒÔ²»Ö¸¶¨ÈκβÎÊý´´½¨Ò»¸ö¿Õº¯Êý£¬²»Ö¸¶¨funcName´´½¨Ò»¸öÎÞÃûº¯Êý£¬µ±È»ÄÇÑùµÄº¯ÊýûÓÐÈκÎÒâÒå¡£
¡¡¡¡ÐèҪעÒâµÄÊÇ£¬p1µ½pnÊDzÎÊýÃû³ÆµÄÁÐ±í£¬¼´p1²»½öÄÜ´ú±íÒ»¸ö²ÎÊý£¬ËüÒ²¿ÉÒÔÊÇÒ»¸ö¶ººÅ¸ô¿ªµÄ²ÎÊýÁÐ±í£¬ÀýÈçÏÂÃæµÄ¶¨ÒåÊǵȼ۵ģº
ÒÔÏÂÊÇÒýÓÃÆ¬¶Î£º
newFunction("a","b","c","returna+b+c")
newFunction("a,b,c","returna+b+c")
newFunction("a,b","c","returna+b+c")
¡¡¡¡J**aScriptÒýÈëFunctionÀàÐͲ¢ÌṩnewFunction()ÕâÑùµÄÓï·¨ÊÇÒòΪº¯Êý¶ÔÏóÌí¼ÓÊôÐԺͷ½·¨¾Í±ØÐë½èÖúÓÚFunctionÕâ¸öÀàÐÍ¡£
¡¡¡¡º¯ÊýµÄ±¾ÖÊÊÇÒ»¸ö**¶ÔÏó£¬ÓÉJ**aScript½âÊÍÆ÷¾ö¶¨ÆäÔËÐз½Ê½¡£Í¨¹ýÉÏÊö´úÂë´´½¨µÄº¯Êý£¬ÔÚ³ÌÐòÖпÉÒÔʹÓú¯ÊýÃû½øÐе÷Óᣱ¾½Ú¿ªÍ·ÁгöµÄº¯Êý¶¨ÒåÎÊÌâÒ²µÃµ½Á˽âÊÍ¡£×¢Òâ¿ÉÖ±½ÓÔÚº¯ÊýÉùÃ÷ºóÃæ¼ÓÉÏÀ¨ºÅ¾Í±íʾ´´½¨Íê³ÉºóÁ¢¼´½øÐк¯Êýµ÷Óã¬ÀýÈ磺
ÒÔÏÂÊÇÒýÓÃÆ¬¶Î£º
vari=function(a,b){
returna+b;
}(1,2);
alert(i);
¡¡¡¡Õâ¶Î´úÂë»áÏÔʾ±äÁ¿iµÄÖµµÈÓÚ3¡£iÊDZíʾ·µ»ØµÄÖµ£¬¶ø²»ÊÇ´´½¨µÄº¯Êý£¬ÒòΪÀ¨ºÅ¡°(¡±±ÈµÈºÅ¡°=¡±Óиü¸ßµÄÓÅÏȼ¶¡£ÕâÑùµÄ´úÂë¿ÉÄܲ¢²»³£Ó㬵«µ±Óû§ÏëÔںܳ¤µÄ´úÂë¶ÎÖнøÐÐÄ£¿é»¯Éè¼Æ»òÕßÏë±ÜÃâÃüÃû³åÍ»£¬ÕâÊÇÒ»¸ö²»´íµÄ½â¾ö°ì·¨¡£
¡¡¡¡ÐèҪעÒâµÄÊÇ£¬¾¡¹ÜÏÂÃæÁ½ÖÖ´´½¨º¯ÊýµÄ·½·¨Êǵȼ۵ģº
ÒÔÏÂÊÇÒýÓÃÆ¬¶Î£º
functionfuncName(){
//º¯ÊýÌå
}
//µÈ¼ÛÓÚ
varfuncName=function(){
//º¯ÊýÌå
}
¡¡¡¡µ«Ç°ÃæÒ»ÖÖ·½Ê½´´½¨µÄÊÇÓÐÃûº¯Êý£¬¶øºóÃæÊÇ´´½¨ÁËÒ»¸öÎÞÃûº¯Êý£¬Ö»ÊÇÈÃÒ»¸ö±äÁ¿Ö¸ÏòÁËÕâ¸öÎÞÃûº¯Êý¡£ÔÚʹÓÃÉϽöÓÐÒ»µãÇø±ð£¬¾ÍÊÇ£º¶ÔÓÚÓÐÃûº¯Êý£¬Ëü¿ÉÒÔ³öÏÖÔÚµ÷ÓÃÖ®ºóÔÙ¶¨Ò壻¶ø¶ÔÓÚÎÞÃûº¯Êý£¬Ëü±ØÐëÊÇÔÚµ÷ÓÃ֮ǰ¾ÍÒѾ­¶¨Òå¡£ÀýÈ磺
ÒÔÏÂÊÇÒýÓÃÆ¬¶Î£º
£¼scriptlanguage="J**aScript"type="text/j**ascript"£¾
£¼!--
func();
varfunc=function(){
alert(1)
}
//--£¾
£¼/script£¾
¡¡¡¡Õâ¶ÎÓï¾ä½«**Éúfunc䶨ÒåµÄ´íÎ󣬶ø£º
ÒÔÏÂÊÇÒýÓÃÆ¬¶Î£º
£¼scriptlanguage="J**aScript"type="text/j**ascript"£¾
£¼!--
func();
functionfunc(){
alert(1)
}
//--£¾
£¼/script£¾
¡¡¡¡ÔòÄܹ»ÕýÈ·Ö´ÐУ¬ÏÂÃæµÄÓï¾äÒ²ÄÜÕýÈ·Ö´ÐУº
ÒÔÏÂÊÇÒýÓÃÆ¬¶Î£º
£¼scriptlanguage="J**aScript"type="text/j**ascript"£¾
£¼!--
func();
varsomeFunc=functionfunc(){
alert(1)
}
//--£¾
£¼/script£¾
¡¡¡¡Óɴ˿ɼû£¬¾¡¹ÜJ**aScriptÊÇһÎâÊÍÐ͵ÄÓïÑÔ£¬µ«Ëü»áÔÚº¯Êýµ÷ÓÃʱ£¬¼ì²éÕû¸ö´úÂëÖÐÊÇ·ñ´æÔÚÏàÓ¦µÄº¯Êý¶¨Ò壬Õâ¸öº¯ÊýÃûÖ»ÓÐÊÇͨ¹ýfunctionfuncName()ÐÎʽ¶¨ÒåµÄ²Å»áÓÐЧ£¬¶ø²»ÄÜÊÇÄäÃûº¯Êý¡£
¡¡¡¡º¯Êý¶ÔÏóºÍÆäËû**¶ÔÏóµÄ¹ØÏµ
¡¡¡¡³ýÁ˺¯Êý¶ÔÏ󣬻¹Óкܶà**¶ÔÏ󣬱ÈÈ磺Object¡¢Array¡¢Date¡¢RegExp¡¢Math¡¢Error¡£ÕâЩÃû³ÆÊµ¼ÊÉϱíʾһ¸öÀàÐÍ£¬¿ÉÒÔͨ¹ýnew²Ù×÷·û·µ»ØÒ»¸ö¶ÔÏó¡£È»¶øº¯Êý¶ÔÏóºÍÆäËû¶ÔÏó²»Í¬£¬µ±ÓÃtypeofµÃµ½Ò»¸öº¯Êý¶ÔÏóµÄÀàÐÍʱ£¬ËüÈÔÈ»»á·µ»Ø×Ö·û´®¡°function¡±£¬¶øtypeofÒ»¸öÊý×é¶ÔÏó»òÆäËûµÄ¶ÔÏóʱ£¬Ëü»á·µ»Ø×Ö·û´®¡°object¡±¡£ÏÂÃæµÄ´úÂëʾÀýÁËtypeof²»Í¬ÀàÐ͵ÄÇé¿ö£º
ÒÔÏÂÊÇÒýÓÃÆ¬¶Î£º
alert(typeof(Function)));
alert(typeof(newFunction()));
alert(typeof(Array));
alert(typeof(Object));
alert(typeof(newArray()));
alert(typeof(newDate()));
alert(typeof(newObject()));
¡¡¡¡ÔËÐÐÕâ¶Î´úÂë¿ÉÒÔ·¢ÏÖ£ºÇ°Ãæ4ÌõÓï¾ä¶¼»áÏÔʾ¡°function¡±£¬¶øºóÃæ3ÌõÓï¾äÔòÏÔʾ¡°object¡±£¬¿É¼ûnewÒ»¸öfunctionʵ¼ÊÉÏÊÇ·µ»ØÒ»¸öº¯Êý¡£ÕâÓëÆäËûµÄ¶ÔÏóÓкܴóµÄ²»Í¬¡£ÆäËûµÄÀàÐÍArray¡¢ObjectµÈ¶¼»áͨ¹ýnew²Ù×÷·û·µ»ØÒ»¸öÆÕͨ¶ÔÏó¡£¾¡¹Üº¯Êý±¾ÉíÒ²ÊÇÒ»¸ö¶ÔÏ󣬵«ËüÓëÆÕͨµÄ¶ÔÏó»¹ÊÇÓÐÇø±ðµÄ£¬ÒòΪËüͬʲÊǶÔÏó¹¹ÔìÆ÷£¬Ò²¾ÍÊÇ˵£¬¿ÉÒÔnewÒ»¸öº¯ÊýÀ´·µ»ØÒ»¸ö¶ÔÏó£¬ÕâÔÚÇ°ÃæÒѾ­½éÉÜ¡£ËùÓÐtypeof·µ»Ø¡°function¡±µÄ¶ÔÏó¶¼ÊǺ¯Êý¶ÔÏó¡£Ò²³ÆÕâÑùµÄ¶ÔÏóΪ¹¹ÔìÆ÷£¨constructor£©£¬Òò¶ø£¬ËùÓеĹ¹ÔìÆ÷¶¼ÊǶÔÏ󣬵«²»ÊÇËùÓеĶÔÏó¶¼Ê¹ÔìÆ÷¡£
¡¡¡¡¼ÈÈ»º¯Êý±¾ÉíÒ²ÊÇÒ»¸ö¶ÔÏó£¬ËüÃǵÄÀàÐÍÊÇfunction£¬ÁªÏëµ½C++¡¢J**aµÈÃæÏò¶ÔÏóÓïÑÔµÄÀඨÒ壬¿ÉÒԲ²⵽FunctionÀàÐ͵Ä×÷ÓÃËùÔÚ£¬ÄǾÍÊÇ¿ÉÒÔ¸øº¯Êý¶ÔÏó±¾Éí¶¨ÒåһЩ·½·¨ºÍÊôÐÔ£¬½èÖúÓÚº¯ÊýµÄprototype¶ÔÏ󣬿ÉÒԺܷ½±ãµØÐ޸ĺÍÀ©³äFunctionÀàÐ͵͍Ò壬ÀýÈçÏÂÃæÀ©Õ¹Á˺¯ÊýÀàÐÍFunction£¬ÎªÆäÔö¼ÓÁËmethod1·½·¨£¬×÷ÓÃÊdzö¶Ô»°¿òÏÔʾ"function"£º
ÒÔÏÂÊÇÒýÓÃÆ¬¶Î£º
Function.prototype.method1=function(){
alert("function");
}
functionfunc1(a,b,c){
returna+b+c;
}
func1.method1();
func1.method1.method1();
¡¡¡¡×¢Òâ×îºóÒ»¸öÓï¾ä£ºfunc1.method1.mehotd1()£¬Ëüµ÷ÓÃÁËmethod1Õâ¸öº¯Êý¶ÔÏóµÄmethod1·½·¨¡£ËäÈ»¿´ÉÏÈ¥ÓеãÈÝÒ×»ìÏý£¬µ«×Ðϸ¹Û²ìÒ»ÏÂÓï·¨»¹ÊǺÜÃ÷È·µÄ£ºÕâÊÇÒ»¸öµÝ¹éµÄ¶¨Òå¡£ÒòΪmethod1±¾ÉíÒ²ÊÇÒ»¸öº¯Êý£¬ËùÒÔËüͬÑù¾ßÓк¯Êý¶ÔÏóµÄÊôÐԺͷ½·¨£¬ËùÓжÔFunctionÀàÐ͵ķ½·¨À©³ä¶¼¾ßÓÐÕâÑùµÄµÝ¹éÐÔÖÊ¡£
¡¡¡¡FunctionÊÇËùÓк¯Êý¶ÔÏóµÄ»ù´¡£¬¶øObjectÔòÊÇËùÓжÔÏ󣨰üÀ¨º¯Êý¶ÔÏ󣩵Ļù´¡¡£ÔÚJ**aScriptÖУ¬ÈκÎÒ»¸ö¶ÔÏó¶¼ÊÇObjectµÄʵÀý£¬Òò´Ë£¬¿ÉÒÔÐÞ¸ÄObjectÕâ¸öÀàÐÍÀ´ÈÃËùÓеĶÔÏó¾ßÓÐһЩͨÓõÄÊôÐԺͷ½·¨£¬ÐÞ¸ÄObjectÀàÐÍÊÇͨ¹ýprototypeÀ´Íê³ÉµÄ£º
ÒÔÏÂÊÇÒýÓÃÆ¬¶Î£º
Object.prototype.getType=function(){
returntypeof(this);
}
vararray1=newArray();
functionfunc1(a,b){
returna+b;
}
alert(array1.getType());
alert(func1.getType());
¡¡¡¡ÉÏÃæµÄ´úÂëΪËùÓеĶÔÏóÌí¼ÓÁËgetType·½·¨£¬×÷ÓÃÊÇ·µ»Ø¸Ã¶ÔÏóµÄÀàÐÍ¡£Á½ÌõalertÓï¾ä·Ö±ð»áÏÔʾ¡°object¡±ºÍ¡°function¡±¡£
½«º¯Êý×÷Ϊ²ÎÊý´«µÝ
¡¡¡¡ÔÚÇ°ÃæÒѾ­½éÉÜÁ˺¯Êý¶ÔÏó±¾ÖÊ£¬Ã¿¸öº¯Êý¶¼±»±íʾΪһ¸öÌØÊâµÄ¶ÔÏ󣬿ÉÒÔ·½±ãµÄ½«Æä¸³Öµ¸øÒ»¸ö±äÁ¿£¬ÔÙͨ¹ýÕâ¸ö±äÁ¿Ãû½øÐк¯Êýµ÷Óá£×÷Ϊһ¸ö±äÁ¿£¬Ëü¿ÉÒÔÒÔ²ÎÊýµÄÐÎʽ´«µÝ¸øÁíÒ»¸öº¯Êý£¬ÕâÔÚÇ°Ãæ½éÉÜJ**aScriptʼþ´¦Àí»úÖÆÖÐÒѾ­¿´µ½¹ýÕâÑùµÄÓ÷¨£¬ÀýÈçÏÂÃæµÄ³ÌÐò½«func1×÷Ϊ²ÎÊý´«µÝ¸øfunc2£º
ÒÔÏÂÊÇÒýÓÃÆ¬¶Î£º
functionfunc1(theFunc){
theFunc();
}
functionfunc2(){
alert("ok");
}
func1(func2);
¡¡¡¡ÔÚ×îºóÒ»ÌõÓï¾äÖУ¬func2×÷Ϊһ¸ö¶ÔÏ󴫵ݸøÁËfunc1µÄÐβÎtheFunc£¬ÔÙÓÉfunc1**½øÐÐtheFuncµÄµ÷Óá£ÊÂʵÉÏ£¬½«º¯Êý×÷Ϊ²ÎÊý´«µÝ£¬»òÕßÊǽ«º¯Êý¸³Öµ¸øÆäËû±äÁ¿ÊÇËùÓÐʼþ»úÖÆµÄ»ù´¡¡£
¡¡¡¡ÀýÈ磬Èç¹ûÐèÒªÔÚÒ³ÃæÔØÈëʱ½øÐÐһЩ³õʼ»¯¹¤×÷£¬¿ÉÒÔÏȶ¨ÒåÒ»¸öinitµÄ³õʼ»¯º¯Êý£¬ÔÙͨ¹ýwindow.onload=init;Óï¾ä½«Æä°ó¶¨µ½Ò³ÃæÔØÈëÍê³ÉµÄʼþ¡£ÕâÀïµÄinit¾ÍÊÇÒ»¸öº¯Êý¶ÔÏó£¬Ëü¿ÉÒÔ¼ÓÈëwindowµÄonloadʼþÁÐ±í¡£
¡¡¡¡´«µÝ¸øº¯ÊýµÄÒþº¬²ÎÊý£ºarguments
¡¡¡¡µ±½øÐк¯Êýµ÷ÓÃʱ£¬³ýÁËÖ¸¶¨µÄ²ÎÊýÍ⣬»¹´´½¨Ò»¸öÒþº¬µÄ¶ÔÏ󡪡ªarguments¡£argumentsÊÇÒ»¸öÀàËÆÊý×鵫²»ÊÇÊý×éµÄ¶ÔÏó£¬ËµËüÀàËÆÊÇÒòΪËü¾ßÓÐÊý×éÒ»ÑùµÄ·ÃÎÊÐÔÖÊ£¬¿ÉÒÔÓÃarguments[index]ÕâÑùµÄÓ﷨ȡֵ£¬ÓµÓÐÊý×鳤¶ÈÊôÐÔlength¡£arguments¶ÔÏó´æ´¢µÄÊÇʵ¼Ê´«µÝ¸øº¯ÊýµÄ²ÎÊý£¬¶ø²»¾ÖÏÞÓÚº¯ÊýÉùÃ÷Ëù¶¨ÒåµÄ²ÎÊýÁÐ±í£¬ÀýÈ磺
ÒÔÏÂÊÇÒýÓÃÆ¬¶Î£º
functionfunc(a,b){
alert(a);
alert(b);
for(vari=0;i£¼arguments.length;i++){
alert(arguments[i]);
}
}
func(1,2,3);
¡¡¡¡´úÂëÔËÐÐʱ»áÒÀ´ÎÏÔʾ£º1£¬2£¬1£¬2£¬3¡£Òò´Ë£¬ÔÚ¶¨Ò庯ÊýµÄʱºò£¬¼´Ê**»Ö¸¶¨²ÎÊýÁÐ±í£¬ÈÔÈ»¿ÉÒÔͨ¹ýargumentsÒýÓõ½Ëù»ñµÃµÄ²ÎÊý£¬Õâ¸ø±à³Ì´øÀ´Á˺ܴóµÄÁé»îÐÔ¡£arguments¶ÔÏóµÄÁíÒ»¸öÊôÐÔÊÇcallee£¬Ëü±íʾ¶Ôº¯Êý¶ÔÏó±¾ÉíµÄÒýÓã¬ÕâÓÐÀûÓÚʵÏÖÎÞÃûº¯ÊýµÄµÝ¹é»òÕß±£º¯ÊýµÄ·â×°ÐÔ£¬ÀýÈçʹÓõݹéÀ´¼ÆËã1µ½nµÄ×ÔÈ»ÊýÖ®ºÍ£º
ÒÔÏÂÊÇÒýÓÃÆ¬¶Î£º
varsum=function(n){
if(1==n)return1;
elsereturnn+sum(n-1);
}
alert(sum(100));
¡¡¡¡ÆäÖк¯Êý**°üº¬Á˶Ôsum×ÔÉíµÄµ÷Óã¬È»¶ø¶ÔÓÚJ**aScriptÀ´Ëµ£¬º¯ÊýÃû½ö½öÊÇÒ»¸ö±äÁ¿Ãû£¬ÔÚº¯Êý**µ÷ÓÃsum¼´Ï൱ÓÚµ÷ÓÃÒ»¸öÈ«¾Ö±äÁ¿£¬²»ÄܺܺõÄÌåÏÖ³öÊǵ÷ÓÃ×ÔÉí£¬ËùÒÔʹÓÃarguments.calleeÊôÐÔ»áÊÇÒ»¸ö½ÏºÃµÄ°ì·¨£º
ÒÔÏÂÊÇÒýÓÃÆ¬¶Î£º
varsum=function(n){
if(1==n)return1;
elsereturnn+arguments.callee(n-1);
}
alert(sum(100));
¡¡¡¡calleeÊôÐÔ²¢²»ÊÇarguments²»Í¬ÓÚÊý×é¶ÔÏóµÄÎ©Ò»ÌØÕ÷£¬ÏÂÃæµÄ´úÂë˵Ã÷ÁËarguments²»ÊÇÓÉArrayÀàÐÍ´´½¨£º
ÒÔÏÂÊÇÒýÓÃÆ¬¶Î£º
Array.prototype.p1=1;
alert(newArray().p1);
functionfunc(){
alert(arguments.p1);
}
func();
¡¡¡¡ÔËÐдúÂë¿ÉÒÔ·¢ÏÖ£¬µÚÒ»¸öalertÓï¾äÏÔʾΪ1£¬¼´±íʾÊý×é¶ÔÏóÓµÓÐÊôÐÔp1£¬¶øfuncµ÷ÓÃÔòÏÔʾΪ¡°undefined¡±£¬¼´p1²»ÊÇargumentsµÄÊôÐÔ£¬Óɴ˿ɼû£¬arguments²¢²»ÊÇÒ»¸öÊý×é¶ÔÏó¡£
¡¡¡¡º¯ÊýµÄapply¡¢call·½·¨ºÍlengthÊôÐÔ
¡¡¡¡J**aScriptΪº¯Êý¶ÔÏó¶¨ÒåÁËÁ½¸ö·½·¨£ºapplyºÍcall£¬ËüÃǵÄ×÷Óö¼Êǽ«º¯Êý°ó¶¨µ½ÁíÍâÒ»¸ö¶ÔÏóÉÏÈ¥ÔËÐУ¬Á½Õß½öÔÚ¶¨Òå²ÎÊýµÄ·½Ê½ÓÐËùÇø±ð£º
ÒÔÏÂÊÇÒýÓÃÆ¬¶Î£º
Function.prototype.apply(thisArg,argArray);
Function.***.call(thisArg[,arg1[,arg2¡­]]);
¡¡¡¡´Óº¯ÊýÔ­ÐÍ¿ÉÒÔ¿´µ½£¬µÚÒ»¸ö²ÎÊý¶¼±»È¡ÃûΪthisArg£¬¼´ËùÓк¯Êý**µÄthisÖ¸Õë¶¼»á±»¸³ÖµÎªthisArg£¬Õâ¾ÍʵÏÖÁ˽«º¯Êý×÷ΪÁíÍâÒ»¸ö¶ÔÏóµÄ·½·¨ÔËÐеÄÄ¿µÄ¡£Á½¸ö·½·¨³ýÁËthisArg²ÎÊý£¬¶¼ÊÇΪFunction¶ÔÏ󴫵ݵIJÎÊý¡£ÏÂÃæµÄ´úÂë˵Ã÷ÁËapplyºÍcall·½·¨µÄ¹¤×÷·½Ê½£º
ÒÔÏÂÊÇÒýÓÃÆ¬¶Î£º
//¶¨ÒåÒ»¸öº¯Êýfunc1£¬¾ßÓÐÊôÐÔpºÍ·½·¨A
functionfunc1(){
this.p="func1-";
this.A=function(arg){
alert(this.p+arg);
}
}
//¶¨ÒåÒ»¸öº¯Êýfunc2£¬¾ßÓÐÊôÐÔpºÍ·½·¨B
functionfunc2(){
this.p="func2-";
this.B=function(arg){
alert(this.p+arg);
}
}
varobj1=newfunc1();
varobj2=newfunc2();
obj1.A("byA");//ÏÔʾfunc1-byA
obj2.B("byB");//ÏÔʾfunc2-byB
obj1.A.apply(obj2,["byA"]);//ÏÔʾfunc2-byA£¬ÆäÖÐ[¡°byA¡±]ÊǽöÓÐÒ»¸öÔªËØµÄÊý×飬ÏÂͬ
obj2.B.apply(obj1,["byB"]);//ÏÔʾfunc1-byB
obj1.***.call(obj2,"byA");//ÏÔʾfunc2-byA
obj2.***.call(obj1,"byB");//ÏÔʾfunc1-byB
¡¡¡¡¿ÉÒÔ¿´³ö£¬obj1µÄ·½·¨A±»°ó¶¨µ½obj2ÔËÐкó£¬Õû¸öº¯ÊýAµÄÔËÐл·¾³¾Í×ªÒÆµ½ÁËobj2£¬¼´thisÖ¸ÕëÖ¸ÏòÁËobj2¡£Í¬Ñùobj2µÄº¯ÊýBÒ²¿ÉÒ԰󶨵½obj1¶ÔÏóÈ¥ÔËÐС£´úÂëµÄ×îºó4ÐÐÏÔʾÁËapplyºÍcallº¯Êý²ÎÊýÐÎʽµÄÇø±ð¡£
¡¡¡¡ÓëargumentsµÄlengthÊôÐÔ²»Í¬£¬º¯Êý¶ÔÏó»¹ÓÐÒ»¸öÊôÐÔlength£¬Ëü±íʾº¯Êý¶¨ÒåʱËùÖ¸¶¨²ÎÊýµÄ¸öÊý£¬¶ø·Çµ÷ÓÃʱʵ¼Ê´«µÝµÄ²ÎÊý¸öÊý¡£ÀýÈçÏÂÃæµÄ´úÂ뽫ÏÔʾ2£º
ÒÔÏÂÊÇÒýÓÃÆ¬¶Î£º
functionsum(a,b){
returna+b;
}
alert(sum.length);
ÉîÈëÈÏʶJ**aScriptÖеÄthisÖ¸Õë
¡¡¡¡thisÖ¸ÕëÊÇÃæÏò¶ÔÏó³ÌÐòÉè¼ÆÖеÄÒ»ÏîÖØÒª¸ÅÄËü±íʾµ±Ç°ÔËÐеĶÔÏó¡£ÔÚʵÏÖ¶ÔÏóµÄ·½·¨Ê±£¬¿ÉÒÔʹÓÃthisÖ¸ÕëÀ´»ñµÃ¸Ã¶ÔÏó×ÔÉíµÄÒýÓá£
¡¡¡¡ºÍÆäËûÃæÏò¶ÔÏóµÄÓïÑÔ²»Í¬£¬J**aScriptÖеÄthisÖ¸ÕëÊÇÒ»¸ö¶¯Ì¬µÄ±äÁ¿£¬Ò»¸ö·½·¨ÄÚµÄthisÖ¸Õë²¢²»ÊÇʼÖÕÖ¸Ïò¶¨Òå¸Ã·½·¨µÄ¶ÔÏóµÄ£¬ÔÚÉÏÒ»½Ú½²º¯ÊýµÄapplyºÍcall·½·¨ÊѾ­ÓйýÕâÑùµÄÀý×Ó¡£ÎªÁË·½±ãÀí½â£¬ÔÙÀ´¿´ÏÂÃæµÄÀý×Ó£º
ÒÔÏÂÊÇÒýÓÃÆ¬¶Î£º
£¼scriptlanguage="J**aScript"type="text/j**ascript"£¾
£¼!--
//´´½¨Á½¸ö¿Õ¶ÔÏó
varobj1=newObject();
varobj2=newObject();
//¸øÁ½¸ö¶ÔÏó¶¼Ìí¼ÓÊôÐÔp£¬²¢·Ö±ðµÈÓÚ1ºÍ2
obj1.p=1;
obj2.p=2;
//¸øobj1Ìí¼Ó·½·¨£¬ÓÃÓÚÏÔʾpµÄÖµ
obj1.getP=function(){
alert(this.p);//±íÃæÉÏthisÖ¸ÕëÖ¸ÏòµÄÊÇobj1
}
//µ÷ÓÃobj1µÄgetP·½·¨
obj1.getP();
//ʹobj2µÄgetP·½·¨µÈÓÚobj1µÄgetP·½·¨
obj2.getP=obj1.getP;
//µ÷ÓÃobj2µÄgetP·½·¨
obj2.getP();
//--£¾
£¼/script£¾
¡¡¡¡´Ó´úÂëµÄÖ´Ðнá¹û¿´£¬·Ö±ð³ö¶Ô»°¿òÏÔʾ1ºÍ2¡£Óɴ˿ɼû£¬getPº¯Êý½ö¶¨ÒåÁËÒ»´Î£¬ÔÚ²»Í¬µÄ³¡ºÏÔËÐУ¬ÏÔʾÁ˲»Í¬µÄÔËÐнá¹û£¬ÕâÊÇÓÐthisÖ¸ÕëµÄ±ä»¯Ëù¾ö¶¨µÄ¡£ÔÚobj1µÄgetP·½·¨ÖУ¬this¾ÍÖ¸ÏòÁËobj1¶ÔÏ󣬶øÔÚobj2µÄgetP·½·¨ÖУ¬this¾ÍÖ¸ÏòÁËobj2¶ÔÏ󣬲¢Í¨¹ýthisÖ¸ÕëÒýÓõ½ÁËÁ½¸ö¶ÔÏó¶¼¾ßÓеÄÊôÐÔp¡£
¡¡¡¡Óɴ˿ɼû£¬J**aScriptÖеÄthisÖ¸ÕëÊÇÒ»¸ö¶¯Ì¬±ä»¯µÄ±äÁ¿£¬Ëü±íÃ÷Á˵±Ç°ÔËÐиú¯ÊýµÄ¶ÔÏó¡£ÓÉthisÖ¸ÕëµÄÐÔÖÊ£¬Ò²¿ÉÒÔ¸üºÃµÄÀí½âJ**aScriptÖжÔÏóµÄ±¾ÖÊ£ºÒ»¸ö¶ÔÏó¾ÍÊÇÓÉÒ»¸ö»ò¶à¸öÊôÐÔ£¨·½·¨£©×é³ÉµÄ¼¯ºÏ¡£Ã¿¸ö¼¯ºÏÔªËØ²»ÊǽöÄÜÊôÓÚÒ»¸ö¼¯ºÏ£¬¶øÊÇ¿ÉÒÔ¶¯Ì¬µÄÊôÓÚ¶à¸ö¼¯ºÏ¡£ÕâÑù£¬Ò»¸ö·½·¨£¨¼¯ºÏÔªËØ£©ÓÉË­µ÷Óã¬thisÖ¸Õë¾ÍÖ¸ÏòË­¡£Êµ¼ÊÉÏ£¬Ç°Ãæ½éÉܵÄapply·½·¨ºÍcall·½·¨¶¼ÊÇͨ¹ýÇ¿ÖÆ¸Ä±äthisÖ¸ÕëµÄÖµÀ´ÊµÏֵģ¬Ê¹thisÖ¸ÕëÖ¸Ïò²ÎÊýËùÖ¸¶¨µÄ¶ÔÏ󣬴Ӷø´ïµ½½«Ò»¸ö¶ÔÏóµÄ·½·¨×÷ΪÁíÒ»¸ö¶ÔÏóµÄ·½·¨ÔËÐС£
¡¡¡¡Ã¿¸ö¶ÔÏ󼯺ϵÄÔªËØ£¨¼´ÊôÐÔ»ò·½·¨£©Ò²ÊÇÒ»¸ö¶ÀÁ¢µÄ²¿·Ö£¬È«¾Öº¯ÊýºÍ×÷Ϊһ¸ö¶ÔÏó·½·¨¶¨ÒåµÄº¯ÊýÖ®¼äûÓÐÈκÎÇø±ð£¬ÒòΪ¿ÉÒÔ°ÑÈ«¾Öº¯ÊýºÍ±äÁ¿¿´×÷Ϊwindow¶ÔÏóµÄ·½·¨ºÍÊôÐÔ¡£Ò²¿ÉÒÔʹÓÃnew²Ù×÷·ûÀ´²Ù×÷Ò»¸ö¶ÔÏóµÄ·½·¨À´·µ»ØÒ»¸ö¶ÔÏó£¬ÕâÑùÒ»¸ö¶ÔÏóµÄ·½·¨Ò²¾Í¿ÉÒÔ¶¨ÒåΪÀàµÄÐÎʽ£¬ÆäÖеÄthisÖ¸ÕëÔò»áÖ¸Ïòд´½¨µÄ¶ÔÏó¡£ÔÚºóÃæ¿ÉÒÔ¿´µ½£¬Õâʱ¶ÔÏóÃû¿ÉÒÔÆðµ½Ò»¸öÃüÃû¿Õ¼äµÄ×÷Óã¬ÕâÊÇʹÓÃJ**aScript½øÐÐÃæÏò¶ÔÏó³ÌÐòÉè¼ÆµÄÒ»¸ö¼¼ÇÉ¡£ÀýÈ磺
ÒÔÏÂÊÇÒýÓÃÆ¬¶Î£º
varnamespace1=newObject();
namespace1.class1=function(){
//³õʼ»¯¶ÔÏóµÄ´úÂë
}
varobj1=newnamespace1.class1();
¡¡¡¡ÕâÀï¾Í¿ÉÒÔ°Ñnamespace1¿´³ÉÒ»¸öÃüÃû¿Õ¼ä¡£
¡¡¡¡ÓÉÓÚ¶ÔÏóÊôÐÔ£¨·½·¨£©µÄ¶¯Ì¬±ä»¯ÌØÐÔ£¬Ò»¸ö¶ÔÏóµÄÁ½¸öÊôÐÔ£¨·½·¨£©Ö®¼äµÄ»¥ÏàÒýÓ㬱ØÐëҪͨ¹ýthisÖ¸Õ룬¶øÆäËûÓïÑÔÖУ¬this¹Ø¼ü×ÖÊÇ¿ÉÒÔÊ¡ÂԵġ£ÈçÉÏÃæµÄÀý×ÓÖУº
ÒÔÏÂÊÇÒýÓÃÆ¬¶Î£º
obj1.getP=function(){
alert(this.p);//±íÃæÉÏthisÖ¸ÕëÖ¸ÏòµÄÊÇobj1