小结

在JavaScript中,对开发者在函数这个话题的理解和运用的要求是比较苛刻的。在本章中,主要讨论了有关函数的一些背景知识和术语。介绍了JavaScript函数中两个重要的特性,也就是:

  1. 函数是一等对象,他们可以被作为值传递,也可以拥有属性和方法。
  2. 函数拥有本地作用域,而大括号不产生块级作用域。另外需要注意的是,变量的声明会被提前到本地作用域顶部。

创建一个函数的语法有:

  1. 具名函数表达式
  2. 匿名函数表达式(和上一种一样,但是没有名字),也就是为大家熟知的“匿名函数”
  3. 函数声明,与其它语言的函数语法相似

在介绍完背景和函数的语法后,介绍了一些有用的模式,按分类列出:

  1. API模式,它们帮助我们为函数给出更干净的接口,包括:

    • 回调模式

      1. 传入一个函数作为参数
    • 配置对象

      1. 帮助保持函数的参数数量可控
    • 返回函数

      1. 函数的返回值是另一个函数
    • 柯里化

      1. 新函数在已有函数的基础上再加上一部分参数构成
  2. 初始化模式,这些模式帮助我们用一种干净的、结构化的方法来做一些初始化工作(在web页面和应用中非常常见),通过一些临时变量来保证不污染全局命名空间。这些模式包括:

    • 即时函数

      1. 当它们被定义后立即执行
    • 对象即时初始化

      1. 初始化工作被放入一个匿名对象,这个对象提供一个可以立即被执行的方法
    • 条件初始化

      1. 使分支代码只在初始化的时候执行一次,而不是在整个程序生命周期中反复执行
  3. 性能模式,这些模式帮助提高代码的执行速度,包括:

    • 记忆模式

      1. 利用函数的属性,使已经计算过的值不用再次计算
    • 自定义函数

      1. 重写自身的函数体,使第二次及后续的调用做更少的工作