Ò׽ؽØÍ¼Èí¼þ¡¢µ¥Îļþ¡¢Ãâ°²×°¡¢´¿ÂÌÉ«¡¢½ö160KB

javascriptµÄcurryingº¯Êý

curryingº¯ÊýÊÇÒ»ÖÖ·µ»Øº¯ÊýµÄº¯Êý£¬ÊDZհü×îΰ´óµÄÓ¦ÓÃÖ®Ò»¡£Óйرհü¸üÏêϸµÄ¶¨Òå¿É²Î¼ûÕâÀïÓëÕâÀï¡£ÈçÏÂcurryingº¯ÊýµÄÒ»ÖÖ¶¨Òå¡£
×îÔçÆÚµÄcurryº¯ÊýÓеã¶à̬µÄÒâ棬¾ÍÊǸù¾Ýº¯Êý²ÎÊýÔÚÄÚ²¿Ñ¡Ó÷ÖÖ§£º
//http://www.openlaszlo.org/pipermail/laszlo-user/2005-March/000350.html
// ¡ï¡ïOn 8 Mar 2005, at 00:06, Steve Albin wrote:
function add(a, b) {
if (arguments.length < 1) {
return add;
} else if (arguments.length < 2) {
return function(c) { return a + c }
} else {
return a + b;
}
}
var myadd = add( 2 );
var total = myadd(3);
ÈÕ±¾µÄÒ»¸öÏÈÐÐÕß¿ÉÄÜÔÚδ¸ãÇåargumentsÒ²ÄÜÓÃArrayµÄÔ­Éú·½·¨×ª»»ÎªÊý×éµÄʱºò£¬Ó÷dz£¸´ÔÓµÄÕýÔòÓëeval¸ã³öÒ»¸ö¸ü½Ó½üÏÖ´úcurryingÒâζµÄº¯Êý¡£
function curry(fun) {
if (typeof fun != 'function') {
throw new Error("The argument must be a function.");
}
if (fun.arity == 0) {
throw new Error("The function must have more than one argument.");
}
var funText = fun.toString();
var args = /function .*\((.*)\)(.*)/.exec(funText)[1].split(', ');
var firstArg = args.shift();
var restArgs = args.join(', ');
var body = funText.replace(/function .*\(.*\) /, "");
var curriedText =
"function (" + firstArg + ") {" +
"return function (" + restArgs + ")" + body +
"}";
eval("var curried =" + curriedText);
return curried;
}

function curry(fun) {
if (typeof fun != 'function') {
throw new Error("The argument must be a function.");
}
if (fun.arity == 0) {
throw new Error("The function must have more than one argument.");
}
var funText = fun.toString();
var args = /function .*\((.*)\)(.*)/.exec(funText)[1].split(', ');
var firstArg = args.shift();
var restArgs = args.join(', ');
var body = funText.r


Ïà¹ØÎĵµ£º

Javascript²Ù×÷ÏÂÀ­¿òµÄ³£Ó÷½·¨

 function AddDropDownList(id,fatherCtl)
{
    if(!document.getElementById(id))
    {
        var ddl = document.createElement('select');
        ddl.s ......

Javascript³£Óõľ­µä¼¼ÇÉ

 
1. oncontextmenu="window.event.returnValue=false" ½«³¹µ×ÆÁ±ÎÊó±êÓÒ¼ü
<table border oncontextmenu=return(false)><td>no</table> ¿ÉÓÃÓÚTable
2. <body onselectstart="return false"> È¡Ïûѡȡ¡¢·ÀÖ¹¸´ÖÆ
3. onpaste="return false" ²»×¼Õ³Ìù
4. oncopy="return false;" oncut=" ......

javascript¿ò¼ÜÖ®¼Ì³Ð»úÖÆ2

 ÎÒÃÇÀ´Ä£·ÂÒ»ÏÂ×îOOµÄmootoolsµÄ¼Ì³Ð»úÖÆ¡£ËüµÄÀà¶¼ÓÐÒ»¸ö½Ð×öinitialize¹¹Ôì·½·¨£¬ÕâÓëJavaµÄÀà¶¼ÓÐÒ»¸öÓëÀàÃûͬÃûµÄ¹¹Ôì·½·¨Ò»ÑùµÄµÀÀí¡£Ö»²»¹ý£¬ÕâЩ½Ðinitialize»òinit¶¼ÊÇ½è¼ø×ÔPrototype£¬¶øPrototypeÄǰïÈËÊÇRuby³öÉí¡£ÎªÁËÇø±ðmootoolsÄÇÖÖÎÛȾԭÉú·½·¨µÄ×ö·¨£¬ÎÒ°ÑÀàµÄ¹¹ÔìÆ÷ÃüÃûΪvariant£¬²¢ÇÒ½ûÖ¹²é¿´¹¹Ô ......

ÓÃJavaScript»ñÈ¡¿Í»§¶ËMACµØÖ·(ת)

 <HTML>  
<HEAD><TITLE>WMI Scripting HTML</TITLE>  
    <META http-equiv=Content-Type content="text/html; charset=gb2312">  
    <SCRIPT language=JScript event="OnCompleted(hResult,pErrorObject, p ......
© 2009 ej38.com All Rights Reserved. ¹ØÓÚE½¡ÍøÁªÏµÎÒÃÇ | Õ¾µãµØÍ¼ | ¸ÓICP±¸09004571ºÅ