小结
在JavaScript中,对开发者在函数这个话题的理解和运用的要求是比较苛刻的。在本章中,主要讨论了有关函数的一些背景知识和术语。介绍了JavaScript函数中两个重要的特性,也就是:
- 函数是一等对象,他们可以被作为值传递,也可以拥有属性和方法。
- 函数拥有本地作用域,而大括号不产生块级作用域。另外需要注意的是,变量的声明会被提前到本地作用域顶部。
创建一个函数的语法有:
- 具名函数表达式
- 匿名函数表达式(和上一种一样,但是没有名字),也就是为大家熟知的“匿名函数”
- 函数声明,与其它语言的函数语法相似
在介绍完背景和函数的语法后,介绍了一些有用的模式,按分类列出:
API模式,它们帮助我们为函数给出更干净的接口,包括:
回调模式
传入一个函数作为参数
配置对象
帮助保持函数的参数数量可控
返回函数
函数的返回值是另一个函数
柯里化
新函数在已有函数的基础上再加上一部分参数构成
初始化模式,这些模式帮助我们用一种干净的、结构化的方法来做一些初始化工作(在web页面和应用中非常常见),通过一些临时变量来保证不污染全局命名空间。这些模式包括:
即时函数
当它们被定义后立即执行
对象即时初始化
初始化工作被放入一个匿名对象,这个对象提供一个可以立即被执行的方法
条件初始化
使分支代码只在初始化的时候执行一次,而不是在整个程序生命周期中反复执行
性能模式,这些模式帮助提高代码的执行速度,包括:
记忆模式
利用函数的属性,使已经计算过的值不用再次计算
自定义函数
重写自身的函数体,使第二次及后续的调用做更少的工作