@函数名 装饰类

今天看到代码@加一个函数名不知道是什么意思,所以来记录一下

这是es6的一个新特性 类的装饰器

类的装饰

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

@testable
class MyTestableClass {
  // ...
}

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

MyTestableClass.isTestable // true

 

上面代码中,@testable就是一个装饰器。它修改了MyTestableClass这个类的行为,为它加上了静态属性isTestabletestable函数的参数targetMyTestableClass类本身。

基本上,装饰器的行为就是下面这样。

@decorator
class A {}

// 等同于

class A {}
A = decorator(A) || A;

  

也就是说,装饰器是一个对类进行处理的函数。装饰器函数的第一个参数,就是所要装饰的目标类。

function testable(target) {
  // ...
}

  

上面代码中,testable函数的参数target,就是会被装饰的类。

更多直接看:https://es6.ruanyifeng.com/#docs/decorator

posted @ 2021-01-04 16:09  咱这个需求做不了  阅读(75)  评论(0)    收藏  举报