函数颗粒化 参数截取并传递

<!DOCTYPE html>
<html>
	<head>
		<meta charset="UTF-8">
		<title></title>
		<script>
			/*----函数颗粒化就是函数参数截取,并合并参数-----*/

//			在这个函数中进行add函数所需参数的截取,用到的函数slice,call,apply
		   function curry(fn){
		   	//截取第一个参数
		   	  var firstAgu = Array.prototype.slice.call(arguments,1);
		   	  //截取第二个参数
		   	  return function two(){
		   	  	var lastTwoAgu = Array.prototype.slice.call(arguments);
		   	    var finalArguments = firstAgu.concat(lastTwoAgu);
		   	    return fn.apply(this,finalArguments);
		   	  }
		   }
		   //这里需要三个参数
		   function add(a,b,c){
		   	var m =  a + b +c;
		   	console.log(m);
		   	return m;
		   }
		   curry(add,5)(1,2);
		</script>
	</head>
	<body>
	</body>
</html>

  

时间: 2024-11-09 15:24:57

函数颗粒化 参数截取并传递的相关文章

Python中的参数是如何传递的?

本文和大家分享的主要是python中参数传递方式相关内容,一起来看看吧,希望对大家学习python有所帮助. 位置参数 调用函数时,根据函数定义的参数位置来传递参数. 1 def right_triangle_area(a,b):2     return 1/2*a*b3 4 print(right_triangle_area(3,4))5 # 位置参数传递 求直角三角形面积,a.b分别为两条直角边,这里调用函数时使用的是位置参数传递.在位置参数传递中,参数的顺序是不可改变的. 关键词参数传递

二级指针和函数参数——指针参数是如何传递内存的?

1:如果函数的参数是一个指针,不要指望用该指针去申请动态内存.Test 函数的语句 GetMemory(str, 200)并没有使 str 获得期望的内存,str 依旧是 NULL,为什么? void GetMemory(char *p, int num) { p = (char *)malloc(sizeof(char) * num); } void Test(void) { char *str = NULL; GetMemory(str, 100); // str 仍然为 NULL strc

传递给函数的隐含参数:arguments及递归函数的实现

传递给函数的隐含参数:arguments当进行函数调用时,除了指定的参数外,还创建一个隐含的对象——arguments.arguments是一个类似数组但不是数组的对象,说它类似是因为它具有数组一样的访问性质,可以用arguments[index]这样的语法取值,拥有数组长度属性length.arguments 对象存储的是实际传递给函数的参数,而不只局限于函数声明所定义的参数列表,例如:function func(a,b){alert(a);alert(b);for(var i=0;i<arg

ios开发@selector的函数如何传参数/如何传递多个参数

不同的类会有不同的传递方式,参数名也不尽相同.如果是传单个参数的就不用集合,如果是传多个参数可以用类似nsarray,nsdictionary之类的集合传递.看下面例子: 例子1: 通过NSTimer看IPhone对@selector的函数如何传参数, NSMutableDictionary *dict = [[NSMutableDictionary alloc] init]; if(oldView != nil) { [dict setObject:oldView forKey:@"oldVi

1:时间戳转换成年月日函数,2:url截取参数方法,3:弹窗自定义方法 4:点击按钮加入购物车

最近一直在使用vue.js来构建项目,先分享一下一些简单可复用的函数. 1:时间戳转换Date.prototype.format = function(fmt){ //author: yumeiqiang var o = { "M+": this.getMonth() + 1, //月份 "d+": this.getDate(), //日 "w+":'星期'+this.getDay(), "h+": this.getHours

6 JavaScript函数&amp;内置构造&amp;函数提升&amp;函数对象&amp;箭头函数&amp;函数参数&amp;参数的值传递与对象传递

JavaScript函数:使用关键字function定义,也可以使用内置的JavaScript函数构造器定义 匿名函数: 函数表达式可以存储在变量中,并且该变量也可以作为函数使用. 实际上是匿名函数. <body> <p>函数存储在变量后,变量可作为函数使用:</p> <p id="demo"></p> <script> var x = function(a,b){return a+b; }; document.g

函数Curry化----对不起,我有代码洁癖

之前写过一个函数Curry化的小文章 那会儿对Curry化的理解不够深,平时遇到的需要Curry化的例子也比较少,今天,重新整理这个问题 函数Curry化,其实就是将一个参数非常多的函数,在大多数参数都相同的情况下,生成一个新的参数比较少的函数的过程 但是,有一个无法解决的问题,至少我不知道该怎么办,就是只能按顺序去省略参数 上代码,先从简单的例子说起 function add( a , b , c){ return a + b + c; } 该方法可以计算三个数的合. add(1,2,3);

关于python的函数的*和**参数:

1.将足够的参数解包以后传递给函数:>def f(p1, p2, p3, p4):>     print p1+p2+p3+p4>>li = [1, 2, 3, 4]>f(*li)10>>tu = (1, 2, 3, 4)>f(*tu)10>>di = {'p1':1, 'p2':2, 'p3':3, 'p4':4}>f(**di)>10 2.使用封包的方法访问多余的参数>>> def funct(*para, **

Python函数中的参数(一)

函数传递参数时的简要关键点: 1.参数的传递是通过自动将对象赋值给本地变量名来实现的.函数参数在实际中只是Python赋值的一个实例.因为引用是以指针的形式实现的,所有的参数实际上都是通过指针进行传递的. 2.在函数内部的参数名的赋值不会影响调用者. 3.改变函数的可变对象参数的值也许会对调用者有影响.即是参数是简单的赋值给传入的对象,函数能够就地改变传入的可变对象,因此其结果会影响调用者.可变参数对于函数来说是可以做输入和输出的. 对可变对象的在原处的修改会影响其他引用了该对象的变量. 如果不