第9章 从面向对象到函数式编程
假如本书的写作时间倒退回十年前,书名可能会变成JavaScript面向对象编程思想。自上世纪90年代兴起的面向对象编程思想随Java的繁荣达于顶点,在JavaScript从一门只被用来编写零星的简单的表单验证代码的玩具语言变成日益流行的Web应用不可取代的开发语言的过程中,脚本的作者们也逐渐学习和习惯了被视为软件开发正统的面向对象编程。等到盛极而衰,面向对象编程的缺点开始浮现和被广泛讨论,Java的热度和市场份额不及以往,而对函数式编程的兴趣和关注从学术圈子扩散至商业软件开发领域,Clojure、Erlang、Scala等新的函数式编程语言被发明和获得市场接纳,Lambda表达式成为编程语言中的热词和老牌语言竞相增添的功能,JavaScript程序员也开始认识到函数式编程的优点。幸运的是,函数式编程所需的基本能力JavaScript在诞生之初就具备了,在迄今二十多年的历史中,JavaScript发扬光大的是事件编程和在面向对象编程世界里长久被忽略的基于原型的对象模型,现在它作为最流行和有活力的编程语言之一,正在逐渐发掘和转向自身混合基因中的另一元素。虽然以函数式编程语言的标准来看,JavaScript相比其他专为此设计的语言有不少不足和缺陷,但是它的普及度还是让它成为函数式编程的有力推动者甚至有希望是这种范式应用最广泛的语言。假如本书的写作时间倒退回十年前,书名可能会变成JavaS