《JavaScript 设计模式与开发指南》笔记(一)

前后花了大约一周时间(2016-03-12——2016-03-19)将《JavaScript 设计模式与开发指南》通读了一遍,对设计模式也有了很基础的人数,外在的主要表现是如何减少过多的 if else 语句,内在则从维护和扩展角度出发。书中各个模式的简单实现代码我会在今后去重现、体会、整理。

本书笔记分为三个部分,也是按照全书目录三个部分划分的,当前是第一部分基础部分,另外两部分分别是:《JavaScript 设计模式与开发指南》笔记(二)《JavaScript 设计模式与开发指南》笔记(三)

前言

  1. 设计模式的定义

    在面向对象软件设计过程中针对特定问题的简介而优雅的解决方案。

第一部分 基础知识

第1章 面向对象的 JavaScript

  1. JavaScript 中的原型继承

    基本规则:

     * 所有的数据都是对象
     * 要得到一个对象,不是通过实例化类,而是找到一个对象作为原型并克隆它
     * 对象会记住它的原型
     * 如果对象无法响应某个请求,它会把这个请求委托给它自己的原型
    

第2章 this、call 和 apply

  1. this

    1. this 的指向,除去不常用的 with 和 eval 情况,实际应用可以分为以下四类

       * 作为对象的方法调用
       * 作为普通函数调用
       * 构造器调用
       * Function.prototype.call 和 Function.prototype.apply 调用
      

第3章 闭包和高阶函数

  1. 高阶函数

    1. 高阶函数是至少满足下列条件之一的函数

       * 函数可以作为参数被传递
       * 函数可以返回值输出
      
  2. currying(柯里化)

    currying 又称部分求值。一个 currying 的函数首先会接受一些函数,接受了这些函数后,该函数并不会立即求值,而是继续返回另外一个函数,刚才传入的参数在函数形成的闭包中被保存下来。待到函数被真正需要求值的时候,之前传入的所有参数会被一次性用于求值。

  3. uncurrying

  4. 函数节流

    将即将被执行的函数用 setTimeout 延迟一段时间执行。如果该延迟执行还没完成,则忽略接下来该函数的请求。

  5. 分时函数
  6. 惰性加载函数

第二部分

最后修改于 2016-03-13

Table of Contents