首页 > 代码库 > Decorator [?dek?re?t?(r)] 修饰器/装饰器 -- 装饰模式

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)] 修饰器/装饰器 -- 装饰模式