3.3 原型
原型让你能够对现有对象克隆,从而构建出一个拥有其范性方法的代理对象。
工厂函数
在JavaScript中,有许多灵活且简单的构造函数,所有JavaScript中的函数均可以返回对象,所以你无需再使用构造函数去构建对象。相较于构造函数,工厂函数不仅为调用者封装了对象实例化的细节,而且省略了多余的new关键字。在工厂函数中,可以组合使用JavaScript的所有语言特性,甚至能够在程序运行期间,动态修改对象的构建逻辑(而且丝毫不影响正在实例化的对象)。
流式API(不要与流式JavaScript搞混淆)
流式API是一组能够让代码执行看起来更像自然语言的接口协议,实现了流式API的方法大都可以被链式调用,但并不是所有可以被链式调用的方法都可以视为流式API。流式API的接口协议规定,对象中的每一项方法均可以返回一个对象,而这个对象中包含了下一步执行所需要的方法组。通过这种方式,方法可以以短句的形式衔接在一起,每个方法都在前一项方法的执行结果上被调用。jQuery与Jasmine均是流式API应用的例子。
随着Prototype、jQuery等类库的兴起,流式JavaScript的概念在社区中得到普及,但是“流式”风格并不是由某个人或某个组织所开创,也不是什么新的独一无二的技术,它只是由JavaScript语言自身的核心特性自然发展演化而来。就其本身来说,既不是一门新的语言风格,也不是一项从其他语言中借鉴来的编程习惯。
甚至“流式”这一命名都显得有些愚蠢,其实它并不是为了与市面上多数JavaScript教程中笨重的代码模式区分开。严格来说,“流式”不是一种新的编程风格,它只是那些资深JavaScript程序员平日里所用到的编程最佳实践。
随着时间的推移,我们可以看到“流式”正成为推动JavaScript语言向前演进的一股力量。它可能会给JavaScript带来新的语言特性,甚至是执行效率的提升。
原型
原型是一种特别的对象,它为指定对象建模并作为其原始模型。它的作用与类极为类似,因为通过原型你可以构建出任意数量的对象实例,不同之处在于它也仅仅是对象。在JavaScript中,原型有两种使用方式:原型代理与原型克隆。