Decorator [?dek?re?t?(r)] 修饰器/装饰器 -- 装饰模式

Posted 每天都要进步一点点

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Decorator [?dek?re?t?(r)] 修饰器/装饰器 -- 装饰模式相关的知识,希望对你有一定的参考价值。

装饰模式 -- 原先没有,后期添加的属性和方法

修饰器(Decorator)是一个函数,用来修饰类的行为。这是ES7的一个提案,目前Babel转码器已经支持。

需要先安装一个插件:

npm install babel-plugin-transform-decorators-legacy --save-dev

然后在项目根目录下,找到:.babelrc => 修改为

"plugins": ["transform-runtime","transform-decorators-legacy"],

 

// 添加属性,添加方法,在方法执行之前添加动作

1.给添加一个静态方法(属性)

function chooseCourse(target){

  target.cours = ‘物理‘;

}

function classroom(target){

  target.study = function(){

    console.log(target.identity + ‘学习‘);

  }

}

@chooseCourse

@classroom

class Student{

}

Student.study();

 

2.修饰器带参数

function chooseCourse(courseName){

  return function(target){

    target.courseName = courseName;

  }

}

以上是关于Decorator [?dek?re?t?(r)] 修饰器/装饰器 -- 装饰模式的主要内容,如果未能解决你的问题,请参考以下文章

装饰者接受任何论点

[TypeScript] Reflection and Decorator Metadata

python模块学习之re

python中的decorator模块

维吉尼亚密码(Vigenère cipher)

re.sub 实现多处替换