ES7装饰器基础教程解读是怎样的?
- 内容介绍
- 文章标签
- 相关推荐
本文共计1292个文字,预计阅读时间需要6分钟。
Decorator提供了一种独特的抽象逻辑,可在原有代码基础上,零侵入地添加新功能特性。商业代码往往是多种交织并存的,在日常开发中,除了实现业务功能外,我们还需考虑诸如异常等问题。
Decorator 提供了一种独特的抽象逻辑,可在原有代码基础上,零侵入添加新功能特性。商业代码总是多种交织并存的,在日常开发中,除了实现业务功能之外,我们还需要考虑诸如:异常处理、性能分析、日志等额外的需求。未经设计的的开发方法会倾向于将各种需求耦合组成一个功能模块,比如:
class Math{ static add(num1,num2){ try{ console.time('some label'); log('log for something'); const result= num1+num2; console.timeEnd('some label'); return result; }catch(e){ error('something had broken'); } } }
上述简单的两数相加功能,在添加各类需求之后,已经变的面目全非。Decorator 语法通过描述,可将功能特性叠加到原有功能中:
class Math{ @log @error @time static add(num1,num2){ return num1+num2; } }
Decorator 是什么
Decorator 就是一个的包裹函数,运行时在编译阶段调用该函数,修改目标对象的行为、属性。
本文共计1292个文字,预计阅读时间需要6分钟。
Decorator提供了一种独特的抽象逻辑,可在原有代码基础上,零侵入地添加新功能特性。商业代码往往是多种交织并存的,在日常开发中,除了实现业务功能外,我们还需考虑诸如异常等问题。
Decorator 提供了一种独特的抽象逻辑,可在原有代码基础上,零侵入添加新功能特性。商业代码总是多种交织并存的,在日常开发中,除了实现业务功能之外,我们还需要考虑诸如:异常处理、性能分析、日志等额外的需求。未经设计的的开发方法会倾向于将各种需求耦合组成一个功能模块,比如:
class Math{ static add(num1,num2){ try{ console.time('some label'); log('log for something'); const result= num1+num2; console.timeEnd('some label'); return result; }catch(e){ error('something had broken'); } } }
上述简单的两数相加功能,在添加各类需求之后,已经变的面目全非。Decorator 语法通过描述,可将功能特性叠加到原有功能中:
class Math{ @log @error @time static add(num1,num2){ return num1+num2; } }
Decorator 是什么
Decorator 就是一个的包裹函数,运行时在编译阶段调用该函数,修改目标对象的行为、属性。

