阅读之前的基础:闭包,任意数量参数
装饰器是什么:是一种函数,是闭包中的外层函数,特点是形参为被装饰的函数的函数名。
图中的example就是装饰器。
装饰器的作用:如果我想扩展一个函数的功能,但是我又不想修改函数现在的代码(因为我的扩展可能是失败的,如果失败,手动删除扩展的代码将会麻烦且会出错),就会使用到装饰器。装饰器实际上是通过闭包的方式来扩展代码,模块化并实现解耦。
装饰器的使用:
在闭包中定义装饰器,外层函数接受函数类型的形参(func),内层函数实现对函数功能的扩展。
记得外层函数返回内层函数名。
装饰器不一定只有两层,可以多层:
由此可见多层装饰器的作用:最外层形参可以放入扩展功能中所需要用到的参数,中间层(inner)返回内层函数,内层函数使用最外层的形参实现功能扩展。