设计模式
装饰者模式
es7例子,装饰器写法
- 需要安装插件npm install babel-plugin-transform-decorators-legacy --save-dev
- 文件设置
.babelrc
的"plugins":["transform-decorators-legacy"]
function testDec(isDec){
return function (target) {//装饰器都是一个函数
target.isDec = false
}
}
@testDec(false)
class Demo{
}
console.log(Demo.isDec)//false
理解:
// 装饰器的原理
@decorator
class A{}
//等同于,,就是A在decorator里执行了一下,加了装饰属性
class A {}
A = decorator(A) || A
可以去了解一下这个库:core-decorators.js
core-decorators.js是一个第三方模块,提供了几个常见的修饰器,通过它可以更好地理解修饰器。