JavaScriptÃæÏò¶ÔÏó³ÌÐòÉè¼Æ(6): ·â×°
±¾²©¿Í×ªÔØÓÚ£ºhttp://devbean.javaeye.com/blog/407517
·â×°ÊÇÃæÏò¶ÔÏóµÄÖØÒª¸ÅÄîÖ®Ò»¡£Èç¹ûÒ»¸ö³ÌÐòûÓзâ×°ÐÔ£¬Ò²¾Í̸²»ÉÏÊ²Ã´ÃæÏò¶ÔÏó¡£µ«ÊÇ£¬JavaScript²¢²»ÏñÆäËûµÄÓïÑÔ£¬±ÈÈçJava£¬Óй«ÓбäÁ¿ºÍ˽ÓбäÁ¿µÈ£»ÔÚJavaScriptÖÐÖ»ÓÐÒ»ÖÖ×÷ÓÃÓò£º¹«ÓÐ×÷ÓÃÓò¡£ÔÚ±¾ÕÂÖУ¬ÎÒÃǽ«»á¼ûʶµ½JavaScriptÊÇÈçºÎʵÏÖ·â×°µÄÌØÐԵġ£
1. thisºÍ¹«ÓбäÁ¿
Ê×ÏÈÐèÒªÀí½âthis¹Ø¼ü×Ö¡£¿´ÏÂÃæµÄÒ»¶Î´úÂ룬ÄãÓ¦¸Ã¶Ô´Ë¸Ðµ½ÊìϤ£º
Js´úÂë
function Person(name, age) {
this.name = name; // ¶¨ÒåÒ»¸ö¹«ÓбäÁ¿
this.age = age;
this.show = function() { // ¶¨ÒåÒ»¸ö¹«Óк¯Êý
alert("name: " + name + "; age: " + age);
}
}
var bill = new Person("Bill", 20);
alert(bill.name);
bill.show();
ÕâÀïµÄthis¹Ø¼ü×ÖÊDZز»¿ÉÉٵġ£Ç°ÃæÖ»ÊÇÈôó¼Ò¼Çס£¬ÄÇôΪʲôҪÕâÑùÄØ£¿ÏëÏëJavaScriptµÄ¶ÔÏó£¬JavaScriptµÄ¶ÔÏóÀàËÆÓÚÉ¢ÁУ¬Ò»¸ö<string, object>¼ü-Öµ¶ÔµÄ¼¯ºÏ¡£ÕâÀïµÄ¶ÔÏóµÄÊôÐÔʵ¼ÊÉ϶¼ÊÇÀëÉ¢µÄ£¬²¢²»ÏñÆäËûµÄÓïÑÔÄÇÑù°ó¶¨µ½Ò»¸ö¶ÔÏóÉÏÃæ¡£this¹Ø¼ü×ÖÖ¸´úµÄÊÇÊôÐÔ»òÕߺ¯ÊýµÄµ÷ÓÃÕߣ¬Ò²¾ÍÊÇ˵£¬Ëµ÷ÓÃÕâ¸öÊôÐÔ»òÕߺ¯ÊýÖ¸µÄ¾ÍÊÇË¡£¿ÉÒÔ¿´µ½£¬ÕâÀïµÄthisºÍJava»òÕßC++µÄthisÊÇÓÐËù²»Í¬µÄ£¬ºóÕßµÄthisÊÇÖ¸ÊôÐÔ»òÕߺ¯ÊýËùÔÚµÄÄǸö¶ÔÏó±¾Éí¡£¶øÕâÀïthisµÄ×÷ÓþÍÊǽ«ËüºóÃæ¸ú×ŵÄÊôÐÔ»òÕß¶ÔÏó°ó¶¨µ½µ÷ÓÃÕßÉÏÃæ¡£»ØÒäÒ»ÏÂJavaScriptµÄnewµÄ¹ý³Ì£¬Ê×ÏȽ«´´½¨Ò»¸ö¿ÕµÄ¶ÔÏó£¬È»ºóʹÓù¹Ô캯Êý³õʼ»¯Õâ¸ö¶ÔÏó£¬×îºó·µ»ØÕâ¸ö¶ÔÏó¡£ÔÚÕâ¸ö¹ý³ÌÖУ¬JavaScript½«°ÑthisÓÃÕâ¸ö¶ÔÏóÌæ»»£¬Ò²¾ÍÊǰѶÔÏóºÍÕâЩÊôÐÔ»òº¯ÊýÏà¹ØÁª£¬¿´ÉÏÈ¥¾ÍÏñÊÇÕâ¸öµ÷ÓÃÕßÓµÓÐÕâ¸öÊôÐÔ»òÕߺ¯ÊýËÆµÄ£¬ÆäʵÕâÊÇthisµÄ×÷Óá£
ÕâÑù¿´À´£¬showÀïÃæµÄnameºÍage²¢Ã»Óйؼü×Ö£¬µ«Ò²ÊÇ¿ÉÒÔÕý³£µÄÖ´ÐоͻáÃ÷°×Ôõô»ØÊÂÁË——ÒòÎªÇ°ÃæÒѾÓÃthis°ÑnameºÍageÓëÕâ¸ö¶ÔÏóbillÏà¹ØÁª£¬²¢ÇÒ£¬showÒ²¹ØÁªµ½Õâ¸öbill±äÁ¿£¬Òò´ËJavaScriptÊÇ¿ÉÒÔÕÒµ½ÕâÁ½¸ö±äÁ¿µÄ¡£
ÕâÑùÀ´¿´£¬ËƺõÓÉthisÐÞÊεͼÊǹ«ÓбäÁ¿¡£ÊÂʵȷʵÈç´Ë£¬Èç¹ûÄãҪʹһ¸ö±äÁ¿³ÉΪ¹«ÓбäÁ¿£¬¿ÉÒÔʹÓÃthis¡£ÏñÉÏÃæ´úÂëÖеÄnameºÍage¶¼Êǹ«ÓбäÁ¿£¬ÔÚÍâÃæÊ¹ÓÃaPerson.name»òÕßaPerson.age¾Í¿ÉÒÔ·ÃÎʵ½¡£
2. ˽ÓбäÁ¿
ÔõôÉùÃ÷Ò»¸ö˽ÓбäÁ¿ÄØ£¿ÊÂʵÉϾÍÏñÇ°ÃæËµµÄ£¬JavaScript¸ù±¾Ã»ÓÐ˽ÓÐ×÷ÓÃÓòÕâһ˵¡£ÄÇôÀ´¿´ÏÂÃæµÄ´úÂ룺
Js´úÂë
function Person(name, age) {
var name = nam
Ïà¹ØÎĵµ£º
½üÈÕÊÕ¼¯ÉÏÍòÐдúÂ룬ÕûÀíһЩ³öÀ´¡£
//V8ÒýÇæµÄʵÏÖ
function ToInteger( n ) {
n = Number( n );
var sign = ( n < 0 ) ? -1 : 1;
if ( n != n ) {
return 0;
}
if ( Math.abs( n ) == 0 || Math.abs( n ) == Number.POSITIVE_INFINITY ) {
......
1. ×ÜÊÇʹÓà ‘var’
ÔÚJavaScript
ÖУ¬±äÁ¿²»ÊÇÈ«¾Ö·¶Î§µÄ¾ÍÊǺ¯Êý·¶Î§µÄ£¬Ê¹ÓÔvar”¹Ø¼ü´Ê½«ÊDZ£³Ö±äÁ¿¼ò½àÃ÷Á˵Ĺؼü¡£µ±ÉùÃ÷Ò»¸ö»òÕßÊÇÈ«¾Ö»òÕßÊǺ¯Êý¼¶£¨function-level£©µÄ±äÁ¿£¬Ðè×ÜÊÇǰÖÔvar”¹Ø¼ü´Ê£¬ÏÂÃæµÄÀý×Ó½«Ç¿µ÷²»ÕâÑù×öDZÔÚµÄÎÊÌâ¡£
²»Ê¹Óà Var Ôì³ÉµÄÎÊÌâ
var i=0; ......
JavaScript eval() º¯Êý
¶¨ÒåºÍÓ÷¨
eval() º¯Êý¿É¼ÆËãij¸ö×Ö·û´®£¬²¢Ö´ÐÐÆäÖÐµÄµÄ JavaScript ´úÂë¡£
Óï·¨
eval(string)
²ÎÊýÃèÊö
string
±ØÐè¡£Òª¼ÆËãµÄ×Ö·û´®£¬ÆäÖк¬ÓÐÒª¼ÆËãµÄ JavaScript ±í´ïʽ»òÒªÖ´ÐеÄÓï¾ä¡£
·µ»ØÖµ
ͨ¹ý¼ÆËã string µÃµ½µÄÖµ£¨Èç¹ûÓеϰ£©¡£
˵Ã÷
¸Ã·½·¨Ö»½ÓÊÜÔʼ×Ö·û´®×÷Ϊ² ......
JavaScript ÊÇ Web ¿ª·¢ÓëÉè¼ÆÖв»¿É»òȱµÄ¶«Î÷£¬²»¹ÜÊÇÒ»¸ö¼òµ¥µÄÍøÒ³»¹ÊÇÒ»¸öרҵµÄÕ¾µã£¬Ò²²»¹ÜÄãÊǸßÊÖ»¹ÊDzËÄñ£¬Èç½ñ
JavaScript ¿âÔ½À´Ô½Ç¿´ó£¬¿ÉÒÔʤÈÎÐí¶à¸´ÔӵŤ×÷£¬È»¶øÍ¬Ê±£¬ÈËÃÇÔÚÖÚ¶à JavaScript ¿âÃæÇ°ÓÖ¾õµÃÎÞËùÊÊ´Ó£¬±¾ÎÄ£¬ÎÒÃǽ«Ê¹ÓÃ
Google ËÑË÷³öÅÅÃûǰ 10 λµÄ JavaScript ¿â£¬²¢¶ÔËüÃÇÖðÒ»½øÐнéÉÜ ......
ÍøÉϺܶàÎÄÕ¶¼×ªÔØÁËÒ»¶Î»°£º¶ÔÓÚº¯ÊýÀ´Ëµ£¬caller ÊôÐÔÖ»ÓÐÔÚº¯ÊýÖ´ÐÐʱ²ÅÓж¨Òå¡£
µ½µ×ÊDz»ÊÇÄØ£¿¿ÉÒÔÓÃÏÂÃæÕâ¶Î´úÂë²âÊÔһϣ¨Õâ¶ÎÀý×ÓÒ²ÊÇ×ªÔØÎÄÕÂÖÐʹÓõģ©£º
function callerDemo() {
if (callerDemo.caller) {
var a= callerDemo.caller.toString();
alert(a);
} else {
......