Decorator

就是把类作为参数 传给 装饰器函数
[cc lang=”js”]
@frozen class Foo {
@configurable(false)
@enumerable(true)
method() {}

@throttle(500)
expensiveMethod() {}
}

//装饰器可以用来装饰整个类

@testable
class MyTestableClass {
// …
}

function testable(target) {
target.isTestable = true;
}

MyTestableClass.isTestable // true
[/cc]

前面的例子是为类添加一个静态属性,如果想添加实例属性,可以通过目标类的prototype对象操作。
[cc lang=”js”]function testable(target) {
target.prototype.isTestable = true;
}

@testable
class MyTestableClass {}

let obj = new MyTestableClass();
obj.isTestable // true[/cc]

[cc lang=”js”]@connect(mapStateToProps, mapDispatchToProps)
export default class MyReactComponent extends React.Component {}[/cc]

Leave a Reply

Your email address will not be published. Required fields are marked *