Javascript笔记 – 函数式的Javascript
本文由发表于6年前 | Javascript | 暂无评论 |  被围观 3,265 views+
1、函数式的Javascript:2、匿名函数:3、高阶函数:4、闭包与柯里化:
1、函数式的Javascript:

Javascript作为一门函数式语言,具有以下特点:

① 函数作为顶级的元素,是不依赖于其他对象而单独存在的。
② 函数可以保持自己内部的数据,这一特性称之为闭包。

下面是使用闭包实现的一个函数体现了数据的保持:

var func1 = function(){
    var x = 0;
    return function(){
        return x++;
    }
}

var a = func1();
alert(a());  //0
alert(a());  //1

var b = func1();
alert(b());  //0
alert(b());  //1

变量a通过闭包引用了func1的一个内部变量,每次调用a()就会改变这个内部变量。当调用a时,函数func1已经返回,但是内部变量x还保持着,而变量b跟a类似,但是他们属于不同的闭包,所以持有不同的数据。

这样就相当于面向对象中的不同实例持有不同的属性,互不干涉。

2、匿名函数:

在C/Java中函数和方法必须有名字才能被调用,而在Javascript中,函数可以没有名字:

//普通函数
function func1(){}
//匿名函数
var func2 = function(){}

这两个语句都表示为全局对象添加一个属性,属性func2的值为一个函数对象,这个函数为匿名函数。

3、高阶函数:

所谓高阶函数,就是以一个或者多个函数作为参数的函数。C中的函数指针,Java中的匿名类都是高阶函数的实现。

4、闭包与柯里化:

柯里化:柯里化就是预先将函数的某些参数传入,得到一个简单的函数,但是预先传入的参数被保存在比保重,因此会有一些奇特的特性:

var compute = function(num){
    return function(x){
        return num + x;
    }
}
var inc = compute(2);  //2传到闭包中
alert(inc(100));  //100作为compute的参数传递
除了文章中有特别说明,均为IT宅原创文章,转载请以链接形式注明出处。
本文链接:http://www.itzhai.com/javascript-notes-javascript-function-2.html
关键字: ,
arthinking Java技术交流群:280755654,入门群:428693174 more
分享到:
 
2012 5/31
文章评论
    没有评论
给我留言

有人回复时邮件通知我
Javascript的相关文章
随机文章 本月热门 热评
1 【转】启示录 2013/11/7
2 JavaScript设计模式 源代码 2012/10/21
3 设计模式笔记 – Decorator 装饰模式 (Design Pattern) 及其在JavaIO流系统中的运用 2011/10/22
4 JVM笔记 – 虚拟机执行子系统(类文件结构) 2014/12/7
5 Java笔记 – RTTI 类型检查 instanceof 2013/12/24
6 Java源码分析 – LinkedList双向链表源码分析 2011/10/11
友情推荐 更多
破博客 文官洗碗安天下,武将打怪定乾坤。多么美好的年代,思之令人泪落。
Mr.5's Life 白天是一名程序员,晚上就是个有抱负的探索者
行知-追寻技术之美 关注大数据,分布式系统
我爱编程 编程成长轨迹
Cynthia's Blog 学习笔记 知识总结 思考感悟
 
猜您喜欢
欢迎关注我的公众号 IT宅
关于IT宅 文章归档

IT宅中的文章除了标题注明转载或有特别说明的文章,均为IT宅的技术知识总结,学习笔记或随笔。如果喜欢,请使用文章下面提供的分享组件。转载请注明出处并加入文章的原链接。 感谢大家的支持。

联系我们:admin@itzhai.com

Theme by arthinking. Copyright © 2011-2015 IT宅.com 保留所有权利.