felix-cao / Blog

A little progress a day makes you a big success!
31 stars 4 forks source link

JavaScript 函数式编程 #192

Open felix-cao opened 3 years ago

felix-cao commented 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 的面向切面编程

本文主要来聊一聊函数式编程。函数式编程是一个很大的课题,本文仅从概念来解读。

一、面向对象编程(OOP)

要理解函数式编程思想,先从大家熟悉的面向对象编程(Object Oriented Programming)思想说起,面向对象编程思想认为一切事物都是对象,将现实世界中的事物抽象成对象,现实世界中的关系抽象成类、继承,以帮助人们对实现对现实世界的抽象和数字建模。面向对象的主要目标是将大对象分解为细粒度的对象。

面向对象编程的三个重要的特征(feature)是多态、封装、继承;

二、函数式编程

函数式编程以函数为抽象单元和行为单元,实现数据的封装和隐藏,与面向对象将问题分解成多组“名词”或对象不同,函数式方法将相同的问题分解成多组“动词”或函数。函数式编程也可以通过组合来构造更大的函数,实现抽象的行为。