码迷,mamicode.com
首页 > 编程语言 > 详细

浅析javascript高阶函数

时间:2018-01-03 22:45:42      阅读:310      评论:0      收藏:0      [点我收藏+]

标签:例子   计算机   gpo   输入   需要   特性   cti   一个   之一   

   什么是高阶函数:在数学和计算机科学中,高阶函数是至少满足下列一个条件的函数: 1、 接受一个或多个函数作为输入; 2、 输出一个函数。在数学中它们也叫做算子(运算符)或泛函。微积分中的导数就是常见的例子,因为它映射一个函数到另一个函数。在函数式编程中,返回另一个函数的高阶函数被称为柯里化的函数。

   显然 javascript 还有 python 都是拥有高阶函数特性的例子。为了看到高阶函数的特性,下面给出一个题目,编写一个 add 函数,能够满足以下计算能力:

   add(1)(2)(3)(4) // 返回10

   从题设来看显然 add(1) 返回的必然是一个函数,才能进行如上的链式调用。当然本题有些难度,难度在于最后需要返回一个数字,而根据前面的要求 add() 调用之后必须返回一个函数。本文的核心不在于讨论其实现方法,有兴趣的读者可自行研究,下面直接出给实现源代码:

var add = (function () {	
	var total=0;
	function ccc (v){
		total += v;
		return ccc;
	};
	ccc.valueOf = function(){
		var temp = total;
		total = 0;
		return temp;
	}
	return ccc;
})();

    通过上述例子可以看出,函数 ccc 通过返回函数本身,来达到链式调用的目的,这是高阶函数的特性之一,另外一个特性是将函数作为参数输入。

 

 

 

 

 

 

浅析javascript高阶函数

标签:例子   计算机   gpo   输入   需要   特性   cti   一个   之一   

原文地址:https://www.cnblogs.com/ndos/p/8185710.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!