×÷¼Ò
怬

javascript֮Partial Applicationѧϰ

×÷Õߣº À´Ô´£ºwww.28hudong.com 2013-03-30 00:13:33 ÔĶÁ´Î ÎÒÒªÆÀÂÛ

ÕâÒ»´ÎÀ´Ñ§Ï°Ò»ÏÂPartial Application¡£ÎÒÃÇÏÈ¿´Ò»Ïº¯ÊýµÄ½éÉÜ£¬ÔÚά»ùÉÏÓмòµ¥µÄ½éÉÜ£º ÔÚÊýѧÖУ¬Ò»¸öº¯ÊýÊÇÃèÊöÿ¸öÊäÈëÖµ¶ÔӦΨһÊä³öÖµµÄÕâÖÖ¶ÔÓ¦¹ØÏµ£¬·ûºÅΪ f(x)¡£ÀýÈ磬±í´ïʽ f(x)=x2±íʾÁËÒ»¸öº¯Êý f£¬ÆäÖÐÿ¸öÊäÈëÖµx¶¼ÓëΨһÊä³öÖµx2ÏàÁªÏµ¡£Òò´Ë£¬Èç¹ûÒ»¸öÊäÈëֵΪ3£¬ÄÇôËüËù¶ÔÓ¦µÄÊä³öֵΪ9¡£¶øg(x,y) = xyÓÐÁ½¸ö²ÎÁ¿xºÍy£¬ÒԳ˻ýxyΪֵ¡£ÉÏÃæÃèÊöÁ˺¯Êý£¨Îª·½±ã¼ÙÉèx,y¶¼ÊÇint£©£¬²¢ÇÒ¸ø³öÁ˺¯ÊýµÄÁ½¸öÀý×Ó£¬ÏÈ»»Ò»ÖÖ·½Ê½À´¿´£¬f(x)¿ÉÒÔ±íʾΪ£ºx -> y(x2)£¬¼´¾­¾­¹ýfµ½x2µÄÓ³É䣬д³É int -> int¡£½ÓÊÜÒ»¸öint ·µ»ØÒ»¸öint¡£ÔÙ¿´g(x,y)¿ÉÒÔ±íʾΪ£ºx -> y -> z(xy)¡£¼´x,y¾­¹ýgµÄÓ³Éäµ½z£¬Ð´³É int -> int -> int¡£ÎÒÃÇ¿´g(x,y)º¯Êý£¬ÓÃjavascriptÀ´ÊµÏÖһϣº ¸´ÖÆ´úÂë ´úÂëÈçÏÂ: function g(x,y){ return x*y; } ºÜÍêÃÀ°¡£¬ºÜ½Ó½üÊýѧ¶¨Òå¡£ËüÒÀ´Î½ÓÊÜÁ½¸ö²ÎÊý£¬xÓëy¡£²¢ÇÒ·µ»ØËüÃÇÁ½¸öµÄ³Ë»ý¡£µ«Êǵ±xÊǸö³£Êý£¬±ÈÈçx=n(nÊÇÒ»¸ö×ÔÈ»Êý)¡£ÄÇôg(n,y)=ny¡£Õâ¾Í±ä³ÉÒ»¸ö³£ÊýÓëÒ»¸ö±äÁ¿µÄ³Ë»ý£¬Ëü½ÓÊÜÒ»¸ö²ÎÊýy·µ»Øny£¬¼´y -> z(ny) µÄÓ³É䣬д³É int -> int¡£Òò´Ë£¬ÎÒÃÇ¿ÉÒÔÕâÑùÀ´Àí½âÉÏÃæµÄ¹¤×÷£¬g(x,y)ÊǽÓÊÜÒ»¸ö²ÎÊýint£¬²¢ÇÒ·µ»ØÒ»¸öº¯Êý int ->int ¡£Õâ¸ö·µ»ØµÄº¯ÊýÖ»½ÓÊÜÒ»¸öint ²¢ÇÒ·µ»ØÒ»¸öint¡£À´ÓÃjavascript±íʾһÏ£º ¸´ÖÆ´úÂë ´úÂëÈçÏÂ: var h = g(2); ÕâÀïµÄh±íʾº¯Êýh(y)=2y¡£ÕâÑù¾ÍÓÐh(5)=10£¬h(13)=26µÈ¡£ ¸´ÖÆ´úÂë ´úÂëÈçÏÂ: h(5); h(13); Õâ¸ö¼¼ÊõÊǰÑÐèÒª¶à¸ö²ÎÊýµÄº¯ÊýÐÎʽת±äΪ½ÓÊܵ¥¸ö²ÎÊýµÄº¯ÊýÁ´£¬Ëüͨ³£½Ð×öCurring£¬ÕâÊÇΪÁ˼ÍÄîHaskell Curry¶øÆðµÄÃû×Ö£¬µ«Ëû²¢²»ÊǵÚÒ»¸öÌá³öµÄ1¡£µ«ÊǺÜÒź¶µÄÊÇjavascript²¢²»Ö§³ÖÕâÑùµÄÌØÐÔ¡£ËùÒÔҪʵÏÖÕâÑùµÄÌØÐÔÐèÒª×öһЩ¹¤×÷£¬ÕâЩ¹¤×÷²¢²»¸´ÔÓ¡£Ö÷ÒªÊǰѲÎÊý´æ´¢ÆðÀ´£¬µÈ´ýµ÷Óú¯ÊýÁ´ÉϵÄÏÂÒ»¸öº¯ÊýʱÄóöǰ±ß²ÎÊý¼ÌÐø´«µÝ¸øÁ´ÉϵÄÏÂÒ»¸öº¯Êý£¬Ö±µ½×îºóµÃµ½·µ»ØÖµ¡£ÏÈ¿´Ò»ÏÂÏÂÃæµÄ´úÂ룺 ¸´ÖÆ´úÂë ´úÂëÈçÏÂ: function atarr(a,index){ var index=index||0,args = new Array(a.length - index); for(var i in a){ if(i>=index) args[i-index]=a[i]; } return args; } function m(scope,fn){ if(arguments.length<3) return fn.call(scope); var p = atarr(arguments,2); return function(){ var args = atarr(arguments); return fn.apply(scope,p.concat(args)); } } ²âÊÔ´úÂ룺 ¸´ÖÆ´úÂë ´úÂëÈçÏÂ: var plus = function(a,b){ return a+b; }; var plus2 = m(null,plus,2); console.log(plus2(10)); console.log(plus2(0)); //½á¹û 12 2 ÕâÑùÎÒÃǵÄÄ¿±êÒѾ­ÊµÏÖÀ²¡£ÔÚÉÏÃæµÄatarrº¯ÊýÊǽ«arguments¶ÔÏóÖÐÖ¸¶¨Î»ÖÿªÊ¼µÄ²ÎÊýÈ¡³ö²¢ÇÒ±£´æµ½Ò»¸öÊý×éÖС£mº¯Êý¾ÍÊÇÖ÷½Ç£¬ËüÍê³ÉÁËÇ°Ãæ¶¨ÒåµÄÈÎÎñ£¬ÊµÏÖÁ˱£´æº¯ÊýÁ´ÉϵIJÎÊý²¢ÇÒ·µ½ÓÊÜÓàϲÎÊýµÄº¯Êý¡£²âÊÔ´úÂëÖеÄplusº¯ÊýÔ­ÏȽÓÊÜa,bÁ½¸ö²ÎÊý²¢·µ»ØaÓëbÖ®ºÍ£¬¼´ int -> int -> int£¬¶øplus2Ôò±ä³ÉÁ˽ÓÊÜÒ»¸ö²ÎÊýbÓë2Ïà¼Ó£¬²¢·µ»Ø2ÓëbÖ®ºÍ£¬¼´ int -> int¡£ ͨ¹ýÉÏÃæµÄһЩ¹¤×÷£¬ÎÒÃÇʵÏÖÁËjavascriptÖеÄPartial Application£¬ÔÚdojo¿ò¼ÜÖÐhitch2ʵÏÖÁËÓò°ó¶¨ºÍpartial¡£ÓÐÐËȤ¿ÉÒÔ¶ÁÒ»ÏÂËüµÄÔ´Â룬ҲÊǷdz£¼òµ¥Ã÷Á˵ġ£

¡¡¡¡ÍƼöÔĶÁ

¡¡¡¡jqueryÑÓ³Ù¼ÓÔØÍⲿjsʵÏÖ´úÂë

¸´ÖÆ´úÂë ´úÂëÈçÏÂ:var gaJsHost = (("https:" == document.location.protocol) ? "https://ssl." : "http://www."); $.getScript(gaJsHost + "google-analytics.com/ga.js",function(){ try { var pageTracker = >>>ÏêϸÔĶÁ


±¾ÎıêÌ⣺javascriptÖ®Partial Applicationѧϰ

µØÖ·£ºhttp://www.17bianji.com/kaifa2/JS/22550.html

¹Ø¼ü´Ê£º ̽Ë÷·¢ÏÖ

ÀÖ¹º¿Æ¼¼²¿·ÖÐÂÎż°ÎÄÕÂ×ªÔØ×Ô»¥ÁªÍø£¬¹©¶ÁÕß½»Á÷ºÍѧϰ£¬ÈôÓÐÉæ¼°×÷Õß°æÈ¨µÈÎÊÌâÇ뼰ʱÓëÎÒÃÇÁªÏµ£¬ÒÔ±ã¸üÕý¡¢É¾³ý»ò°´¹æ¶¨°ìÀí¡£¸ÐлËùÓÐÌṩ×ÊѶµÄÍøÕ¾£¬»¶Ó­¸÷ÀàýÌåÓëÀÖ¹º¿Æ¼¼½øÐÐÎÄÕ¹²ÏíºÏ×÷¡£

ÍøÓѵãÆÀ
×ÔýÌåרÀ¸

ÆÀÂÛ

ÈȶÈ

¾«²Êµ¼¶Á
À¸Ä¿ID=71µÄ±í²»´æÔÚ(²Ù×÷ÀàÐÍ=0)