ES6学习:函数和抽象思考的力量
函数作为子程序
子程序是一个非常老的概念。实际上,它是为了管理日趋复杂的程序而做出的让步。子程序将一些重复的功能进行简单地封装,并赋予它一个名字,接下来就可以在任何时候通过引用名字来执行那些功能。
子程序有很多别名,诸如过程、例行程序、次程序、宏,以及可调用单元等。事实上,在JS中并不用子进程这个名字,就把函数叫作函数。这里使用术语子进程程序,是为了强调这种函数用法
思考为什么?
为什么需要函数,用函数来定义子程序就是答案之一: 为了避免重复代码。因此子程序可以帮助打包常用功能 DRY - Don't repeat yourself
相同输入,相同输出 没有副作用 为什么要用纯函数? 因为它们使编程更像数学,更易于测试、轻量级、可读性更高
当一个函数在不同情况下返回不同的结果或产生副作用 -> 上下文相关
之前讲过的面向对象编程提供了一种范式,它允许通过严格控制副作用的作用域,从而来以一种受控和合理的方式使用
函数即对象 在JS中,函数是Function对象的实例,所以想要区分函数类型和其他类型的对象,应该优先使用typeof
