zoukankan      html  css  js  c++  java
  • ES6学习笔记九:修饰器

    一:修饰器(Decorator)是一个函数,用来修改类的行为。

    1)定义与使用

    function 修饰器名(target) {
      //target是被修饰对象,可用target.xxx进行调用修改
    }
    
    @修饰器名
    class MyClass {
      // ...
    }
    
    //调用修饰器
    MyClass.修饰器;

    修饰器对类的行为的改变,是代码编译时发生的,而不是在运行时。这意味着,修饰器能在编译阶段运行代码。

    2)带参数的修饰器

    function 修饰器名(参数列表) {
      return function(target) {//返回一个闭包函数
        target.xx= xx;//修改targer的内容
      }
    }
    
    @修饰器名(实参)
    class MyClass {}

    MyClass.修饰器;

    二:使用

    1)修饰类

    (见上面格式)

    2)修饰类中方法、属性

    在类中的方法、属性上加  @修饰器  注解即可。

    三:第三方模块

    core-decorators.js是一个第三方模块,提供了几个常见的修饰器:

    autobind修饰器使得方法中的this对象,绑定原始对象。

    readonly修饰器使得属性或方法不可写。

    override修饰器检查子类的方法,是否正确覆盖了父类的同名方法,如果不正确会报错。

    deprecatedeprecated修饰器在控制台显示一条警告,表示该方法将废除。

    suppressWarnings修饰器抑制decorated修饰器导致的console.warn()调用。但是,异步代码发出的调用除外。

  • 相关阅读:
    灭霸冲刺(7)
    灭霸冲刺(6)
    灭霸冲刺(5)
    灭霸冲刺(4)
    pip安装软件或模块时提示cannot import name 'main'
    mysql的安装与使用
    channels 2.x的使用
    charlesmitmproxyappium的安装与使用
    centos中redis安装
    django+nginx+gunicorn+pipenv微信小程序实践笔记
  • 原文地址:https://www.cnblogs.com/ygj0930/p/7248702.html
Copyright © 2011-2022 走看看