function add(a, b, c, d, e) { ???????var array = []; ???????for (i = 0; i < arguments.length; i++) { ???????????array.push(arguments[i]); ???????} ???????if (array.length == 6) { ???????????return a + b + c + d + e; ???????} else { ???????????var addother = function addother() { ???????????????for (i = 0; i < arguments.length; i++) { ???????????????????array.push(arguments[i]); ???????????????} ???????????????if (array.length >= 5) { ???????????????????return array[0] + array[1] + array[2] + array[3] + array[4]; ???????????????} else { ???????????????????return addOther ???????????????} ???????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????}; ???????????addother.toString = function () { ???????????????var str = 0; ???????????????for (i = 0; i < array.length; i++) { ???????????????????str = str + array[i]; ???????????????} ???????????????return str; ???????????}; ???????????return addother; ???????} ???}var a=add(1,3)a.toString()//4; ??a(2,4,5)//15
JS 部分实例化方法(Curry)
原文地址:http://www.cnblogs.com/zwcai/p/7610685.html