Open felix-cao opened 3 years ago
JavaScript 的函数式编程思想是一个编程范型(Programming Paradigms [ˈpærədaɪmz]), 编程范型,就是编写程序的方法论,是一种程序设计大法。常见的编程范型有命令式编程(Imperative [ɪmˈperətɪv] programming) 和声明式编程(Declarative [dɪˈklærətɪv] Programming)。此前有两篇文章介绍 声明式(Declarative)编程与命令式(Imperative)编程 和 JavaScript 的面向切面编程
JavaScript
Programming Paradigms [ˈpærədaɪmz]
本文主要来聊一聊函数式编程。函数式编程是一个很大的课题,本文仅从概念来解读。
OOP
要理解函数式编程思想,先从大家熟悉的面向对象编程(Object Oriented Programming)思想说起,面向对象编程思想认为一切事物都是对象,将现实世界中的事物抽象成对象,现实世界中的关系抽象成类、继承,以帮助人们对实现对现实世界的抽象和数字建模。面向对象的主要目标是将大对象分解为细粒度的对象。
Object Oriented Programming
面向对象编程的三个重要的特征(feature)是多态、封装、继承;
函数式编程以函数为抽象单元和行为单元,实现数据的封装和隐藏,与面向对象将问题分解成多组“名词”或对象不同,函数式方法将相同的问题分解成多组“动词”或函数。函数式编程也可以通过组合来构造更大的函数,实现抽象的行为。
JavaScript
的函数式编程思想是一个编程范型(Programming Paradigms [ˈpærədaɪmz]
), 编程范型,就是编写程序的方法论,是一种程序设计大法。常见的编程范型有命令式编程(Imperative [ɪmˈperətɪv] programming) 和声明式编程(Declarative [dɪˈklærətɪv] Programming)。此前有两篇文章介绍 声明式(Declarative)编程与命令式(Imperative)编程 和 JavaScript 的面向切面编程本文主要来聊一聊函数式编程。函数式编程是一个很大的课题,本文仅从概念来解读。
一、面向对象编程(
OOP
)要理解函数式编程思想,先从大家熟悉的面向对象编程(
Object Oriented Programming
)思想说起,面向对象编程思想认为一切事物都是对象,将现实世界中的事物抽象成对象,现实世界中的关系抽象成类、继承,以帮助人们对实现对现实世界的抽象和数字建模。面向对象的主要目标是将大对象分解为细粒度的对象。面向对象编程的三个重要的特征(feature)是多态、封装、继承;
二、函数式编程
函数式编程以函数为抽象单元和行为单元,实现数据的封装和隐藏,与面向对象将问题分解成多组“名词”或对象不同,函数式方法将相同的问题分解成多组“动词”或函数。函数式编程也可以通过组合来构造更大的函数,实现抽象的行为。