ÈçºÎÀí½â¼°ÔËÓÃfunction

µ¼Óï Function×÷ΪJavascriptµÄºËÐļ¼ÊõÖ®Ò»,ÇåÎúµÄÀí½âfunctionµÄ»úÖƺÍÓ÷¨,¶ÔÎÒÃǽøÐÐjavascript¿ª·¢·Ç³£ÖØÒª¡£ÄãÓÐÏë¹ýfunctionÊÇʲôÂð£¿ECMAScript µÄº¯Êýʵ¼ÊÉÏÊǹ¦ÄÜÍêÕûµÄ¶ÔÏó¡£ÆäÖÐfunctionÊÇjavascriptÖÐ
Function×÷ΪJavascriptµÄºËÐļ¼ÊõÖ®Ò»,ÇåÎúµÄÀí½âfunctionµÄ»úÖƺÍÓ÷¨,¶ÔÎÒÃǽøÐÐjavascript¿ª·¢·Ç³£ÖØÒª¡£ÄãÓÐÏë¹ýfunctionÊÇʲôÂð£¿ECMAScript µÄº¯Êýʵ¼ÊÉÏÊǹ¦ÄÜÍêÕûµÄ¶ÔÏó¡£ÆäÖÐfunctionÊÇjavascriptÖж¨Ò庯ÊýµÄ¹Ø¼ü×Ö£¬ÓÉfunction¶¨ÒåµÄº¯ÊýÊÇÒ»¸öÓÉ´úÂ뼯ºÏ¶ø³ÉµÄ¶ÔÏó£¬ÊôÓÚÒýÓÃÀàÐÍ¡£¶øFunctionÔòÊÇjavascriptÖеÄÒýÓÃÀàÐÍÖеÄÒ»ÖÖ£¬ÀàËÆNumberºÍStringºÍObjectºÍBoolean¡£FunctionÀà¿ÉÒÔ±íʾ¿ª·¢Õ߶¨ÒåµÄÈκκ¯Êý¡£
 
WebÇ°¶Ë¿ª·¢
 
 
FunctionÓëfunction
 
ECMAScript ×îÁîÈ˸ÐÐËȤµÄ¿ÉÄÜĪ¹ýÓÚº¯Êýʵ¼ÊÉÏÊǹ¦ÄÜÍêÕûµÄ¶ÔÏó¡£Function Àà¿ÉÒÔ±íʾ¿ª·¢Õ߶¨ÒåµÄÈκκ¯Êý¡£
Óà Function ÀàÖ±½Ó´´½¨º¯ÊýµÄÓï·¨ÈçÏ£º
 
var function_name = new function(arg1, arg2, ..., argN, function_body)
ÔÚÉÏÃæµÄÐÎʽÖУ¬Ã¿¸ö arg ¶¼ÊÇÒ»¸ö²ÎÊý£¨×î¶à 25 ¸ö£©£¬×îºóÒ»¸ö²ÎÊýÊǺ¯ÊýÖ÷Ì壨ҪִÐеĴúÂ룩¡£ÕâЩ²ÎÊý±ØÐëÊÇ×Ö·û´®¡£
¼ÇµÃÏÂÃæÕâ¸öº¯ÊýÂð£¿
 
  1. function sayHi(sName, sMessage) { 
  2.   alert("Hello " + sName + sMessage); 
»¹¿ÉÒÔÕâÑù¶¨ÒåËü£º
 
  1. var sayHi = new Function("sName""sMessage""alert(\"Hello \" + sName + sMessage);"); 
ËäÈ»ÓÉÓÚ×Ö·û´®µÄ¹Øϵ£¬ÕâÖÖÐÎʽдÆðÀ´ÓÐЩÀ§ÄÑ£¬µ«ÓÐÖúÓÚÀí½âº¯ÊýÖ»²»¹ýÊÇÒ»ÖÖÒýÓÃÀàÐÍ£¬ËüÃǵÄÐÐΪÓëÓà Function ÀàÃ÷È·´´½¨µÄº¯ÊýÐÐΪÊÇÏàͬµÄ¡£
Çë¿´ÏÂÃæÕâ¸öÀý×Ó£º
 
  1. function doAdd(iNum) { 
  2.   alert(iNum + 20); 
  3.  
  4. function doAdd(iNum) { 
  5.   alert(iNum + 10); 
doAdd(10); //Êä³ö "20"
ÈçÄãËùÖª£¬µÚ¶þ¸öº¯Êý¸²¸ÇÁ˵ÚÒ»¸öº¯Êý£¬Ê¹ doAdd(10) Êä³öÁË “20”£¬¶ø²»ÊÇ “30”¡£
Èç¹ûÒÔÏÂÃæµÄÐÎʽÖØд¸Ã´úÂë¿é£¬Õâ¸ö¸ÅÄî¾ÍÇå³þÁË£º
 
  1. var doAdd = new Function("iNum""alert(iNum + 20)"); 
  2. var doAdd = new Function("iNum""alert(iNum + 10)"); 
  3. doAdd(10); 
Çë¹Û²ìÕâ¶Î´úÂ룬ºÜÏÔÈ»£¬doAdd µÄÖµ±»¸Ä³ÉÁËÖ¸Ïò²»Í¬¶ÔÏóµÄÖ¸Õë¡£º¯ÊýÃûÖ»ÊÇÖ¸Ïòº¯Êý¶ÔÏóµÄÒýÓÃÖµ£¬ÐÐΪ¾ÍÏñÆäËû¶ÔÏóÒ»Ñù¡£ÉõÖÁ¿ÉÒÔʹÁ½¸ö±äÁ¿Ö¸Ïòͬһ¸öº¯Êý£º
 
  1. var doAdd = new Function("iNum""alert(iNum + 10)"); 
  2. var alsodoAdd = doAdd; 
  3. doAdd(10); //Êä³ö "20"
  4. alsodoAdd(10); //Êä³ö "20"
ÔÚÕâÀ±äÁ¿ doAdd ±»¶¨ÒåΪº¯Êý£¬È»ºó alsodoAdd ±»ÉùÃ÷ΪָÏòͬһ¸öº¯ÊýµÄÖ¸Õë¡£ÓÃÕâÁ½¸ö±äÁ¿¶¼¿ÉÒÔÖ´Ðиú¯ÊýµÄ´úÂ룬²¢Êä³öÏàͬµÄ½á¹û - “20”¡£Òò´Ë£¬Èç¹ûº¯ÊýÃûÖ»ÊÇ
 
Ö¸Ïòº¯ÊýµÄ±äÁ¿£¬ÄÇô¿ÉÒ԰Ѻ¯Êý×÷Ϊ²ÎÊý´«µÝ¸øÁíÒ»¸öº¯ÊýÂ𣿻شðÊǿ϶¨µÄ£¡
 
  1. function callAnotherFunc(fnFunction, vArgument) { 
  2.   fnFunction(vArgument); 
  3.  
  4. var doAdd = new Function("iNum""alert(iNum + 10)"); 
  5.  
  6. callAnotherFunc(doAdd, 10); //Êä³ö "20"
ÔÚÉÏÃæµÄÀý×ÓÖУ¬callAnotherFunc() ÓÐÁ½¸ö²ÎÊý - Òªµ÷Óõĺ¯ÊýºÍ´«µÝ¸ø¸Ãº¯ÊýµÄ²ÎÊý¡£Õâ¶Î´úÂë°Ñ doAdd() ´«µÝ¸ø callAnotherFunc() º¯Êý£¬²ÎÊýÊÇ 10£¬Êä³ö “20”¡£
×¢Ò⣺¾¡¹Ü¿ÉÒÔʹÓà Function ¹¹Ô캯Êý´´½¨º¯Êý£¬µ«×îºÃ²»ÒªÊ¹ÓÃËü£¬ÒòΪÓÃËü¶¨Ò庯Êý±ÈÓô«Í³·½Ê½ÒªÂýµÃ¶à¡£²»¹ý£¬ËùÓк¯Êý¶¼Ó¦¿´×÷ Function ÀàµÄʵÀý¡£
ÈçÇ°ËùÊö£¬º¯ÊýÊôÓÚÒýÓÃÀàÐÍ£¬ËùÒÔËüÃÇÒ²ÓÐÊôÐԺͷ½·¨¡£
ECMAScript ¶¨ÒåµÄÊôÐÔ length ÉùÃ÷Á˺¯ÊýÆÚÍûµÄ²ÎÊý¸öÊý¡£ÀýÈ磺
 
  1. function doAdd(iNum) { 
  2.   alert(iNum + 10); 
  3.  
  4. function sayHi() { 
  5.   alert("Hi"); 
  6.  
  7. alert(doAdd.length); //Êä³ö "1"
  8. alert(sayHi.length); //Êä³ö "0"
º¯Êý doAdd() ¶¨ÒåÁËÒ»¸ö²ÎÊý£¬Òò´ËËüµÄ length ÊÇ 1£»sayHi() ûÓж¨Òå²ÎÊý£¬ËùÒÔ length ÊÇ 0¡£
¼Çס£¬ÎÞÂÛ¶¨ÒåÁ˼¸¸ö²ÎÊý£¬ECMAScript ¿ÉÒÔ½ÓÊÜÈÎÒâ¶à¸ö²ÎÊý£¨×î¶à 25 ¸ö£©£¬ÕâÒ»µãÔÚÉÏÃæ½²½â¹ý¡£ÊôÐÔ length Ö»ÊÇΪ²é¿´Ä¬ÈÏÇé¿öÏÂÔ¤ÆڵIJÎÊý¸öÊýÌṩÁËÒ»ÖÖ¼ò±ã·½Ê½¡£
Function ¶ÔÏóÒ²ÓÐÓëËùÓжÔÏó¹²ÏíµÄ valueOf() ·½·¨ºÍ toString() ·½·¨¡£ÕâÁ½¸ö·½·¨·µ»ØµÄ¶¼ÊǺ¯ÊýµÄÔ´´úÂ룬ÔÚµ÷ÊÔʱÓÈÆäÓÐÓá£ÀýÈ磺
 
  1. function doAdd(iNum) { 
  2.   alert(iNum + 10); 
  3.  
  4. document.write(doAdd.toString()); 
ÉÏÃæÕâ¶Î´úÂëÊä³öÁË doAdd() º¯ÊýµÄÎı¾¡£
 
functionʹÓÃ
  1. function myfunc(param) { 
  2.     //code
×¢ÒâJavascriptÖеĺ¯ÊýÃûÏàͬµÄÁ½¸öfunction±»ÈÏΪÊÇͬһ¸ö£¬ÔÚÔËÐÐʱµ½µ×µ÷ÓÃÄÄÒ»¸öfunctionÈ¡¾öÓÚ¼ÓÔØ˳Ðò,ºóÒ»¸ö¼ÓÔصÄfunction»á¸²¸ÇÇ°Ò»¸ö.
 
 
  1. function func1() {return 'func1'; } 
  2. function func1(name) { return name; } 
¾¿ÆäÔ­ÒòÊÇ£ºjavascriptÖÐfunctionµÄ²ÎÊý¶¼ÊÇ¿ÉÑ¡²ÎÊý,Òò´ËfuncitonµÄʶ±ðÊDz»°üÀ¨Èë²ÎµÄ,¶øº¯ÊýÈë²Î´¦µÄÉùÃ÷ÊÇΪÁËÒýÓ÷½±ãÒÔ¼°¿É¶ÁÐÔ.
ÒÔÉϵĴúÂëÒ²µÈ¼ÛÓÚ:
 
  1. function func1() { 
  2.     return arguments[0] || 'func1'
  3. func();              //return 'func1'
  4. func('function'); //return 'function'
functionµ±×÷¶ÔÏó
 
ÊǵÄû´í,ÔÚjavascriptÖÐfunction¾ÍÊǶÔÏó,ÎÒÃÇ¿ÉÒÔÏòʹÓÃÒ»¸ö¶ÔÏóÄÇÑùʹÓÃfunction¡£Ëü¿ÉÒÔÓÐ×Ô¼ºµÄÊôÐԺͷ½·¨.ÓÐÈçϵÄÒ»¸öfunciton:
 
  1. function nameOf(name) { 
  2.     return name.toUpperCase();  
  3. function×÷Ϊ¶ÔÏó½øÐи³Öµ 
  4.  
  5. var person = person || {}; 
  6. person.nameOf = nameOf; 
  7. person.nameOf('yang dong'// return "YANG DONG"
¶¨ÒåfunctionµÄÊôÐÔ
 
¿´¿´ÒÔϵĴúÂë, ÄãÄÜ´ÓÖеĵ½Ê²Ã´ÐÅÏ¢:
 
  1. function nameOf() {return nameOf.blogger;} 
  2. nameOf.blogger = "YANG_DONG"
û´í,function¿ÉÒÔÓµÓÐ×Ô¼ºµÄÊôÐÔ¡£¿¼ÂÇÕâÑùÒ»ÖÖ³¡¾°, ¼ÙÈçÎÒÃÇҪͳ¼Æij¸öfunction±»µ÷ÓõĴÎÊý.ÄÇôÎÒÃÇÓÐÁ½ÖÖ·½Ê½À´ÊµÏÖ:
 
1.É趨һ¸öÈ«¾Ö±äÁ¿À´¼Ç¼,¸Ãfunciton±»µ÷ÓõĴÎÊý,ÿµ÷ÓÃÒ»´Î,¸Ã±äÁ¿¼Ó1:
 
  1. var globalNameOfCounter = 0; 
  2. nameOf(); 
  3. globalNameOfCounter ++; 
ÕâÑù×ö¿´ÆðÀ´ÊÇûÓÐÎÊÌâµÄ,ÔÚ´úÂ뻹ÊDZȽϼòµ¥µÄʱºò,Ëü¿ÉÒÔ¹¤×÷µÄºÜºÃ,µ«ÊÇËæ×Å´úÂëÔ½À´Ô½¸´ÔÓ,ά»¤Õâ¶ÎÂß¼­µÄ³É±¾»áÖ±ÏßÉÏÉý¡£Ö÷ÒªÊÇÒòΪ:globalNameOfCounterÎÛȾµÄglobalÃüÃû¿Õ¼ä,²¢ÇÒÆÆ»µÁË´úÂëµÄ·â×°ÐÔ.
 
2.ʹÓÃfunctionµÄÊôÐÔ
¿´¿´ÒÔÏ´úÂë:
 
  1. function nameOf() { 
  2.     nameOf.counter++; 
  3.     return nameOf.blogger; 
  4. nameOf.blogger = “YANG_DONG" 
  5. nameOf.counter = 0;   
  6. nameOf(); //nameOf.counter = 1
  7. nameOf(); //nameOf.counter = 2
ÏÔ¶øÒ×¼û,µÚ¶þÖÖ·½Ê½ÓÐןܺõķâ×°ÐÔºÍά»¤ÐÔ.functionµÄÊôÐÔµÄÓ¦Óû¹²»Ö¹Èç´Ë.Çë¿´ÏÂÎÄ.
 
function×÷ΪÃû×Ö¿Õ¼ä
 
Javascript²»Ö§³ÖÃû×Ö¿Õ¼ä(±¾È˲»Ì«Àí½âÈç´ËÇ¿´óµÄÓïÑÔΪʲô²»Ö§³ÖÃû×Ö¿Õ¼äÄØ,ÕâÊÇΪʲôÄØ?),
 
²»¹ýÎÒÃÇÒÀÈ»¿ÉÒÔʹÓÃÆäÇ¿´óµÄfuncitonΪÎÒÃÇÖ§³ÖÃû×Ö¿Õ¼ä.
 
´ÓÉϽÚÎÒÃÇÖªµÀfunction¿ÉÒÔ¶¨Òå×Ô¼ºµÄÊôÐÔ,ÎÒÃǾͿÉÒÔÀûÓøÃÌØÐÔÀ´Éú³ÉÃû×Ö¿Õ¼ä.Çë¿´ÒÔÏ´úÂë:
 
  1. nameOf.getBloggerName = function() { 
  2.     return nameOf.blogger; 
´ËʱÔÚnameOfÃû×Ö¿Õ¼äÖ®ÏÂÒѾ­°üº¬ÁË:blogger,counterÊôÐÔºÍfunction getBloggerName.
 
function×÷Ϊmethod
 
ÔÚjavascriptÖÐfunctionºÍmethodÆäʵÊÇûÓÐʲô±¾ÖÊÇø±ðµÄ,Èç¹û·ÇµÄÇø·ÖÁ½ÕߵĻ°,ÎÒÏëÒ²¾ÍÊÇthis±äÁ¿²»Í¬°É.
 
  1. function g() {return this;} 
  2. var local = local || {}; 
  3. local.method = g; //ÐÞ¸ÄthisÖ¸Ïòlocal
  4. local.method();   //·µ»Ølocal¶ÔÏó
  5. g();              //·µ»ØDOMWindow¶ÔÏó
function½ÔΪclosure
 
ÔÚJavascriptÖÐËùÓеÄfunction¶¼°ó¶¨ÁËÒ»¸öscope chain,Òò´ËËüÊÇÒ»¸ö±£´æÁ˵÷ÓÃÉÏÏÂÎĵĺ¯Êý.¿´¿´ÏÂÃæµÄʵÀý´úÂë:
 
  1. var variable = 'global'
  2. function getVariable(){ 
  3.     var variable = 'local'
  4.     func = function() { 
  5.         return variable; 
  6.     }; 
  7.     return func; 
  8. getVariable()();  //return local;
µ±func±»µ÷ÓõÄʱºò,ËüËùÈ¡µÄvaribleµÄÖµÊǵ÷ÓÃÉÏÏÂÎÄÖеıäÁ¿¶ø²¢·ÇÓë֮ͬÃûµÄÈ«¾Ö±äÁ¿.
 
×ܽá
 
Èç¹ûÓÃÒ»¾ä»°¸ÅÀ¨½ñÌì¶ÔfuncitonµÄ½éÉÜ,ÄÇôÎÒÏëÓ¦¸ÃÊÇ: functionÊÇ¿ÉÒÔ±»µ÷ÓÃÖ´ÐеĴúÂ뼯¶ÔÏó.
 
ÒÔÉÏÊÇfunctionµÄһЩӦÓó¡¾°,µ±È»Ëü»¹²»Ö¹ÕâЩ.
 
±ÈÈç: function×÷Ϊ¹¹Ô캯Êý(Ò²¾ÍÊÇfunciton×÷ΪÀà),¼Ì³ÐµÈ.ÕâЩÄÚÈݽ«ÔÚÒÔºó´ó¼Ò½éÉÜ,¾´ÇëÆÚ´ý.
 

 
Function¶ÔÏóµÄÊôÐԺͷ½·¨
 
º¯ÊýÊÇ JavaScript ÖеÄÒýÓÃÊý¾ÝÀàÐÍ£¬ÔÚº¯ÊýÕâ¸ö¶ÔÏóÉ϶¨ÒåÁËһЩÊôÐԺͷ½·¨£¬ÏÂÃæÎÒÃÇÖðÒ»À´½éÉÜÕâЩÊôÐԺͷ½·¨£¬Õâ¶ÔÓÚÀí½âJavascriptµÄ¼Ì³Ð»úÖƾßÓÐÒ»¶¨µÄ°ïÖú¡£
 
ÊôÐÔ(Properties)
 
arguments
 
»ñÈ¡µ±Ç°ÕýÔÚÖ´ÐÐµÄ Function ¶ÔÏóµÄËùÓвÎÊý£¬ÊÇÒ»¸öÀàËÆÊý×鵫²»ÊÇÊý×éµÄ¶ÔÏó£¬ËµËüÀàËÆÊý×éÊÇÒòΪÆä¾ßÓÐÊý×éÒ»ÑùµÄ·ÃÎÊÐÔÖʼ°·½Ê½£¬¿ÉÒÔÓÉarguments[n]À´·ÃÎʶÔÓ¦µÄµ¥¸ö²ÎÊýµÄÖµ£¬²¢ÓµÓÐÊý×鳤¶ÈÊôÐÔlength¡£»¹ÓоÍÊÇarguments¶ÔÏó´æ´¢µÄÊÇʵ¼Ê´«µÝ¸øº¯ÊýµÄ²ÎÊý£¬¶ø²»¾ÖÏÞÓÚº¯ÊýÉùÃ÷Ëù¶¨ÒåµÄ²ÎÊýÁÐ±í£¨length)£¬¶øÇÒ²»ÄÜÏÔʽ´´½¨ arguments ¶ÔÏó¡£ÏÂÃæµÄSample˵Ã÷ÁËÕâЩÐÔÖÊ¡£
 
  1. function testArg(a, b) { 
  2.     var actCount = arguments.length, 
  3.         expCount = testArg.length, 
  4.         result; 
  5.  
  6.     result = "Expected arguments' count is " + expCount + ";<br/>"
  7.     result += "Actual arguments' count is " + actCount + ".<br/>"
  8.     result += "They are:<br/>"
  9.     for (var i = 0; i < actCount; i++) { 
  10.         result += arguments[i] + ";<br/>"
  11.     } 
  12.     if (arguments instanceof Array) { 
  13.         result += "arguments is an Array instance."
  14.     } else if (arguments instanceof Object) { 
  15.         result += "arguments is an Object instance."
  16.     } 
  17.     document.write(result); 
  18. testArg(1); 
  19. //output result is:
Expected arguments' count is 2;
Actual arguments' count is 1.
They are:
1;
arguments is an Object instance.
####length
»ñÈ¡º¯Êý¶¨ÒåµÄ²ÎÊý¸öÊý£¬functionName.length
²»Í¬ÓÚarguments.length£¬ÕâµãÎÒÃÇÔÚÉÏÃæÓнéÉÜ¡£ÒòΪJavascriptµ÷Óú¯Êýʱºò¶Ôº¯Êý²ÎÊý²»×÷ÈκθöÊýºÍÀàÐͼì²é£¬Ò²¾ÍûÓк¯Êýµ÷ÓôíÎó¸ÅÄî¡£µ«ÊÇÎÒÃÇ¿ÉÒÔÀûÓÃfunctionName.lengthºÍarguments.lengthµÄ²»Í¬£¬ÔÚº¯Êýµ÷ÓÃÄÚ²¿À´¼ì²â²ÎÊý¸öÊý¼ì²â¡£
 
  1. function checkVarCount(a, b) { 
  2.     if (checkVarCount.length !== arguments.length) { 
  3.         alert("The count of the parameters you passed into the function doesn't match the function definition."); 
  4.     } 
  5.     alert("Successfully call the function"); 
  6. checkVarCount(1, 2); 
  7. //Successfully call the function
  8. checkVarCount(1); 
  9. //The count of the parameters you passed into the function doesn't match the function definition.
caller»ñÈ¡µ÷Óõ±Ç°º¯ÊýµÄº¯Êý¡£callerÊôÐÔÖ»Óе±º¯ÊýÕýÔÚÖ´ÐÐʱ²Å±»¶¨Òå¡£
 
functionName.caller
Èç¹ûº¯ÊýÊÇ´Ó JavaScript ³ÌÐòµÄ¶¥²ãµ÷Óõģ¬Ôòcaller°üº¬null¡£Èç¹ûÔÚ×Ö·û´®ÉÏÏÂÎÄÖÐʹÓà caller ÊôÐÔ£¬ÔòÆä½á¹ûºÍ functionName.toString Ïàͬ£¬Ò²¾ÍÊÇ˵£¬½«ÏÔʾº¯ÊýµÄ·´±àÒëÎı¾¡£
 
  1. function test() { 
  2.     if (test.caller == null) { 
  3.         document.write("test is called from the toppest level"); 
  4.     } else { 
  5.         document.write("test is called from the function:<br/>"); 
  6.         document.writeln(test.caller.toString()); 
  7.     } 
  8.     document.write("<br />"); 
  9. //call from the top level
  10. test(); 
  11. //output: test is called from the toppest level
  12.  
  13. function testOuter() { 
  14.     test(); 
  15.  
  16. //call from the function testOuter
  17. testOuter(); 
  18. //output:
  19. //test is called from the function:
  20. //function testOuter() { test(); }
  21. ####callee
·µ»ØÕý±»Ö´ÐÐµÄ Function ¶ÔÏ󣬼´Ö¸¶¨µÄ Function ¶ÔÏóµÄÕýÎÄ¡£
 
 
[functionName.]arguments.callee
callee ÊôÐÔÊÇ arguments ¶ÔÏóµÄÒ»¸ö³ÉÔ±£¬¸ÃÊôÐÔ½öµ±Ïà¹Øº¯ÊýÕýÔÚÖ´ÐÐʱ²Å¿ÉÓá£Í¨³£Õâ¸öÊôÐÔ±»ÓÃÀ´µÝ¹éµ÷ÓÃÄäÃûº¯Êý¡£
 
  1. var fac = function(n){ 
  2.   if (n <= 0) 
  3.      return 1; 
  4.   else
  5.      return n * arguments.callee(n - 1); 
  6. }(4); 
  7. document.write(fac);//24
constructor
 
»ñÈ¡´´½¨Ä³¸ö¶ÔÏóµÄº¯Êý¡£constructor ÊôÐÔÊÇÿ¸ö¾ßÓÐÔ­Ð͵ĶÔÏóµÄÔ­ÐͳÉÔ±¡£ Õâ°üÀ¨³ý Global ºÍ Math ¶ÔÏóÖ®ÍâµÄËùÓÐÄÚ²¿ JavaScript ¶ÔÏó¡£ constructor ÊôÐÔ¾ÍÊÇÓÃÀ´¹¹Ôì¶ÔÏóʵÀýµÄº¯ÊýÒýÓá£
 
  1. // A constructor function.
  2. function MyObj() { 
  3.     this.number = 1; 
  4.  
  5. var x = new String("Hi"); 
  6.  
  7. if (x.constructor == String) 
  8.     document.write("Object is a String."); 
  9. document.write ("<br />"); 
  10.  
  11. var y = new MyObj; 
  12. if (y.constructor == MyObj) 
  13.     document.write("Object constructor is MyObj."); 
  14.  
  15. // Output:
  16. // Object is a String.
  17. // Object constructor is MyObj.
prototype»ñÈ¡¶ÔÏóµÄÔ­ÐÍ¡£Ã¿Ò»¸ö¹¹Ô캯Êý¶¼ÓÐÒ»¸öprototypeÊôÐÔ£¬Ö¸ÏòÁíÒ»¸ö¶ÔÏó¡£Õâ¸ö¶ÔÏóµÄËùÓÐÊôÐԺͷ½·¨£¬¶¼»á±»¹¹Ô캯ÊýµÄʵÀý¼Ì³Ð¡£ÕâÒâζ×Å£¬ÎÒÃÇ¿ÉÒÔ°ÑÄÇЩ²»±äµÄÊôÐԺͷ½·¨£¬Ö±½Ó¶¨ÒåÔÚprototype¶ÔÏóÉÏ¡£
 
 
  1. function Man(name, age) { 
  2.     this.name = name; 
  3.     this.age = age; 
  4. Man.prototype.sex = "M"
  5. Man.prototype.struggle = function () { 
  6.     alert("day day up!!!!"); 
  7. var li = new Man("Leo", 10); 
  8. alert(li.sex);//M
  9. li.struggle();//day day up
  10. Man.prototype.isStrong = true
  11. alert(li.isStrong);//true
  12. ÕâÑùÎÒÃÇÒ²¿ÉÒÔÏòÒѶ¨ÒåºÃµÄ¶ÔÏ󣨰üÀ¨javascriptÌṩµÄÔ­Éú¶ÔÏó£©ÖÐ×·¼Ó·½·¨ºÍÊôÐÔ£¬ 
  13.  
  14. var aa = new Number(2); 
  15. alert(typeof (aa.add)); //undefined
  16. Number.prototype.add = function (add1) { 
  17.     return this + add1; 
  18. alert(aa.add(1)); // 3
·½·¨ applyµ÷Óú¯Êý£¬²¢ÓÃÖ¸¶¨¶ÔÏóÌæ»»º¯ÊýµÄthisÖµ£¬Í¬Ê±ÓÃÖ¸¶¨Êý×éÌæ»»º¯ÊýµÄ²ÎÊý¡£
 
functionName.apply([thisObj[,argArray]])
Èç¹ûargArrayΪÎÞЧֵ£¬Ôò»áÅ׳ö”Object expected”´íÎó£»Èç¹ûthisObjºÍargArray¶¼Ã»ÓÐÌṩ£¬Ôò»áʹÓõ±Ç°this×÷ΪthisObj
 
  1. function callMe(arg1, arg2) { 
  2.     var s = ""
  3.  
  4.     s += "this value: " + this
  5.     s += "<br />"
  6.     for (i in callMe.arguments) { 
  7.         s += "arguments: " + callMe.arguments[i]; 
  8.         s += "<br />"
  9.     } 
  10.     return s; 
  11.  
  12. document.write("Original function: <br/>"); 
  13. document.write(callMe(1, 2)); 
  14. document.write("<br/>"); 
  15.  
  16. document.write("Function called with apply: <br/>"); 
  17. document.write(callMe.apply(3, [4, 5])); 
  18. document.write("<br/>"); 
  19.  
  20. document.write("Function called with apply with invalid array: <br/>"); 
  21. try
  22.     document.write(callMe.apply(3,2)); 
  23. catch (e) { 
  24.     document.write(e.message); 
  25. document.write("<br/><br/>"); 
  26.  
  27. document.write("Function called with apply without any argument: <br/>"); 
  28. document.write(callMe.apply()); 
  29. //Output result:
  30. //Original function:
  31. //this value: [object Window]
  32. //    arguments: 1
  33. //    arguments: 2
  34.  
  35. //Function called with apply:
  36. //this value: 3
  37. //    arguments: 4
  38. //    arguments: 5
  39.  
  40. //Function called with apply with invalid array:
  41. //Function.prototype.apply: Arguments list has wrong type
  42.  
  43. //Function called with apply without any argument:
  44. //this value: [object Window]


callµ÷ÓÃÒ»¸ö¶ÔÏóµÄ·½·¨£¬ÓÃÁíÒ»¸ö¶ÔÏóÌæ»»µ±Ç°¶ÔÏó¡£
 
call([thisObj[, arg1[, arg2[, [, argN]]]]])
ËüÔÊÐíÄú½«º¯ÊýµÄ this ¶ÔÏó´Ó³õʼÉÏÏÂÎıäΪÓÉ thisObj Ö¸¶¨µÄжÔÏó¡£ Èç¹ûûÓÐÌṩ thisObj ²ÎÊý£¬Ôò global ¶ÔÏó±»ÓÃ×÷ thisObj¡£Óëapply·½·¨Î¨Ò»²»Í¬µÄµØ·½ÊÇ£¬applyµÄ
 
µÚ¶þ¸ö²ÎÊýÀàÐͱØÐëÊÇArray£¬¶øcall·½·¨Êǽ«ËùÓеIJÎÊýÁоٳöÀ´£¬ÓöººÅ·Ö¸ô¡£
 
 
  1. function callMe(arg1, arg2){ 
  2.     var s = ""
  3.  
  4.     s += "this value: " + this
  5.     s += "<br />"
  6.     for (i in callMe.arguments) { 
  7.         s += "arguments: " + callMe.arguments[i]; 
  8.         s += "<br />"
  9.     } 
  10.     return s; 
  11.  
  12. document.write("Original function: <br/>"); 
  13. document.write(callMe(1, 2)); 
  14. document.write("<br/>"); 
  15.  
  16. document.write("Function called with call: <br/>"); 
  17. document.write(callMe.call(3, 4, 5)); 
  18.  
  19. // Output:
  20. // Original function:
  21. // this value: [object Window]
  22. // arguments: 1
  23. // arguments: 2
  24.  
  25. // Function called with call:
  26. // this value: 3
  27. // arguments: 4
  28. // arguments: 5
bind
 
¶ÔÓÚ¸ø¶¨º¯Êý£¬´´½¨¾ßÓÐÓëԭʼº¯ÊýÏàͬµÄÖ÷ÌåµÄ°ó¶¨º¯Êý¡£ Ôڰ󶨹¦ÄÜÖУ¬this¶ÔÏó½âÎöΪ´«ÈëµÄ¶ÔÏó¡£ ¸Ã°ó¶¨º¯Êý¾ßÓÐÖ¸¶¨µÄ³õʼ²ÎÊý¡£
 
function.bind(thisArg[,arg1[,arg2[,argN]]])
ÆäÖÐfunction, thisArgΪ±ØÑ¡Ïî¡£·µ»ØÒ»¸öÓë function º¯ÊýÏàͬµÄк¯Êý£¬Ö»²»¹ýº¯ÊýÖеÄthis¶ÔÏóºÍ²ÎÊý²»Í¬¡£
 
  1. // Define the original function.
  2. var checkNumericRange = function (value) { 
  3.     if (typeof value !== 'number'
  4.         return false
  5.     else
  6.         return value >= this.minimum && value <= this.maximum; 
  7.  
  8. // The range object will become the this value in the callback function.
  9. var range = { minimum: 10, maximum: 20 }; 
  10.  
  11. // Bind the checkNumericRange function.
  12. var boundCheckNumericRange = checkNumericRange.bind(range); 
  13.  
  14. // Use the new function to check whether 12 is in the numeric range.
  15. var result = boundCheckNumericRange (12); 
  16. document.write(result); 
  17.  
  18. // Output: true
ÒÔÏ´úÂëÑÝʾÈçºÎʹÓà arg1[,arg2[,argN]]] ²ÎÊý¡£ ¸Ã°ó¶¨º¯Êý½« bind ·½·¨ÖÐÖ¸¶¨µÄ²ÎÊýÓÃ×÷µÚÒ»¸ö²ÎÊýºÍµÚ¶þ¸ö²ÎÊý¡£ ÔÚµ÷Óøð󶨺¯Êýʱ£¬Ö¸¶¨µÄÈκβÎÊý½«ÓÃ×÷µÚÈý¸ö¡¢µÚËĸö²ÎÊý£¨ÒÀ´ËÀàÍÆ£©¡£
 
 
  1. // Define the original function with four parameters.
  2. var displayArgs = function (val1, val2, val3, val4) { 
  3.     document.write(val1 + " " + val2 + " " + val3 + " " + val4); 
  4.  
  5. var emptyObject = {}; 
  6.  
  7. // Create a new function that uses the 12 and "a" parameters
  8. // as the first and second parameters.
  9. var displayArgs2 = displayArgs.bind(emptyObject, 12, "a"); 
  10.  
  11. // Call the new function. The "b" and "c" parameters are used
  12. // as the third and fourth parameters.
  13. displayArgs2("b""c"); 
  14. // Output: 12 a b c
ÔÚ¶ÔÏó¶¨ÒåÄÚ²¿Ê¹ÓÃbind·½·¨¿ÉÒÔ½«Ä³¸öʼþ°ó¶¨µ½¶ÔÏóÄÚ²¿µÄij¸ö·½·¨£¬
 
  1. <input type="button" id="start" value="Start" /> 
  2. <input type="button" id="stop" value="Stop" /> 
  3. <script type="text/javascript"
  4.     function Car(owner) { 
  5.         this.owner = owner; 
  6.         this.start = function () { 
  7.             //start the car
  8.             console.log(this); 
  9.             //output: Car {owner: "Mike", start: function, stop: function} check.html:14
  10.             console.log(this.owner + "'s car is starting."); 
  11.             //output: Mike's car is starting.
  12.         }; 
  13.         this.stop = function () { 
  14.             console.log(this); 
  15.             //output: <input type="button" id="stop" value="Stop" />
  16.             console.log(this.owner + "'s car is starting."); 
  17.             //output: undefined's car is stopping.
  18.         }; 
  19.     } 
  20.     var btnStart = document.getElementById("start"), 
  21.         btnStop = document.getElementById("stop"), 
  22.         someCar = new Car("Mike"); 
  23.  
  24.     if (document.attachEvent) { 
  25.         btnStart.attachEvent("onClick", someCar.start.bind(someCar)); 
  26.         btnStop.attachEvent("onClick", someCar.stop); 
  27.     } else if (document.addEventListener) { 
  28.         btnStart.addEventListener("click", someCar.start.bind(someCar), false); 
  29.         btnStop.addEventListener("click", someCar.stop, false); 
  30.     } 
  31. </script> 
´ÓÉÏÃæSampleÎÒÃÇ·¢ÏÖ£¬µ±²»Ê¹ÓÃbind·½·¨µÄʱºò£¬Ê¼þÀïÃæµÄthisÖ¸ÏòµÄ´¥·¢clickʼþdomÔªËØinput£¬Ëüµ±È»Ã»ÓÐownerÊôÐÔ£»Èç¹ûÀûÓÃbindÖ¸¶¨Ê¼þÀïÃæµÄthis¶ÔÏ󣬾ÍÄÜ´ïµ½ÎÒÃÇÏëÒªµÄЧ¹û¡£
 
toString·µ»Ø¶ÔÏóµÄ×Ö·û´®±íʾÐÎʽ¡£
 
objectname.toString([radix])
objectname±ØÐ裬ָ¶¨ÐèÒª»ñÈ¡×Ö·û´®±íʾÐÎʽµÄ¶ÔÏó¡£radix¿ÉÑ¡£¬Îª½«Êý×Öֵת»»Îª×Ö·û´®Ö¸¶¨Ò»¸ö»ùÊý£¬´ËÖµ½öÓÃÓÚÊý×Ö¡£
 
toString ·½·¨ÊÇÒ»¸öËùÓÐÄÚÖÃµÄ JavaScript ¶ÔÏóµÄ³ÉÔ±¡£ ËüµÄÐÐΪȡ¾öÓÚ¶ÔÏóµÄÀàÐÍ£º
 
Object Behavior
Array ½« Array µÄÔªËØת»»Îª×Ö·û´®¡£ ½á¹û×Ö·û´®±»Á¬½ÓÆðÀ´£¬ÓöººÅ·Ö¸ô¡£
Boolean Èç¹û²¼¶ûֵΪ true£¬Ôò·µ»Ø“true”¡£ ·ñÔò·µ»Ø“false”¡£
Date ·µ»ØÈÕÆÚµÄÎı¾±íʾÐÎʽ¡£
Error ·µ»ØÒ»¸ö°üº¬Ïà¹Ø´íÎóÐÅÏ¢µÄ×Ö·û´®¡£
Function ·µ»ØÈçϸñʽµÄ×Ö·û´®£¬ÆäÖÐ functionname ÊÇÒ»¸öº¯ÊýµÄÃû³Æ£¬´Ëº¯ÊýµÄ toString ·½·¨±»µ÷Óãº
function functionname( ) { [native code] }
 
Number ·µ»ØÊý×ÖµÄÎÄ×Ö±íʾÐÎʽ¡£
String ·µ»Ø String ¶ÔÏóµÄÖµ¡£
Default ·µ»Ø "[object objectname]"£¬ÆäÖÐ objectname Ϊ¶ÔÏóÀàÐ͵ÄÃû³Æ¡£
valueOf
 
·µ»Ø¶ÔÏóµÄÔ­ÉúÖµ¡£
 
 
object.valueOf( )
JavascriptÄÚ²¿¸÷¸ö¶ÔÏó¶¨ÒåµÄvalueOf²»Í¬£º
 
Object Return value
Array  ·µ»ØÊý×éʵÀý¡£
 Boolean  ²¼¶ûÖµ¡£
 Date  ´Ó UTC 1970 Äê 1 Ô 1 ÈÕÎçÒ¹¿ªÊ¼µÄ´æ´¢µÄʱ¼äÖµ£¨ÒÔºÁÃëΪµ¥Î»£©¡£
 Function  º¯Êý±¾Éí¡£
 Number  Êý×ÖÖµ¡£
 Object  ¶ÔÏó±¾Éí¡£ ÕâÊÇĬÈÏÖµ¡£
 String  ×Ö·û´®Öµ¡£
Math ºÍ Error ¶ÔÏó¶¼Ã»ÓÐ valueOf ·½·¨¡£
×ܽá
 
Function ºÍ function£¬Àí½âÁËÂð£¿
http://www.aseoe.com/ true ÈçºÎÀí½â¼°ÔËÓÃfunction http://www.aseoe.com/show-12-800-1.html report <£¿php echo strlen($content) / 2; ?> Function×÷ΪJavascriptµÄºËÐļ¼ÊõÖ®Ò»,ÇåÎúµÄÀí½âfunctionµÄ»úÖƺÍÓ÷¨,¶ÔÎÒÃǽøÐÐjavascript¿ª·¢·Ç³£ÖØÒª¡£ÄãÓÐÏë¹ýfunctionÊÇʲôÂð£¿ECMAScript µÄº¯Êýʵ¼ÊÉÏÊǹ¦ÄÜÍêÕûµÄ¶ÔÏó¡£ÆäÖÐfunctionÊÇjavascriptÖÐ
TAG:function
±¾Õ¾»¶Ó­ÈκÎÐÎʽµÄתÔØ£¬µ«ÇëÎñ±Ø×¢Ã÷³ö´¦£¬×ðÖØËûÈËÀͶ¯³É¹û
תÔØÇë×¢Ã÷£º ÎÄÕÂתÔØ×Ô£º°®Ë¼×ÊÔ´Íø http://www.aseoe.com/show-12-800-1.html

[Ç°¶Ë²å¼þÍƼö] Plugin

1 2 3 4
  • jQueryʵÏÖÖð×ÖÖð¾äÏÔʾ²å¼þl-by-l.min.js
  • jQuery´ø·½Ïò¸ÐÖªµÄÊó±ê»¬¹ýͼƬ±ß¿òÌØЧ²å¼þ
  • jQuery HotKeys¼àÌý¼üÅÌ°´ÏÂʼþkeydown²å¼þ
  • ÏìӦʽÎÞÏÞÂÖ²¥jQueryÐýתľÂí²å¼þ
ÏìӦʽÎÞÏÞÂÖ²¥jQueryÐýתľÂí²å¼þ
webÇ°¶Ë¿ª·¢
°®Ë¼×ÊÔ´Íø Copyright 2012-2014 Www.Aseoe.Com All rights reserved.(½úICP±¸13001436ºÅ-1)