zoukankan      html  css  js  c++  java
  • ES6-----学习系列十七(Decorator)

    Decorator就是修饰器的意思

     一、概念

      修饰器是一个函数,用来修改类的行为(注意:1、函数  2、修改行为  3、对类进行操作)

      1、只读的修饰器

    {
      let readonly=function(target,name,descriptor){
        descriptor.writable=false;
        return descriptor
      };
    
      class Test{
        @readonly
        time(){
          return '2017-03-11'
        }
      }
    
      let test=new Test();
    
      // test.time=function(){
      //   console.log('reset time');
      // }; 将报错  如果修改的话
    
      console.log(test.time());
    }

      也可以在类的前面进行修饰

    {
      let typename=function(target,name,descriptor){
        target.myname='hello';
      }
    
      @typename
      class Test{
    
      }
    
      console.log('类修饰符',Test.myname);//hello
      // 第三方库修饰器的js库:core-decorators; npm install core-decorators
    }

      

    {
      let log=(type)=>{
        return function(target,name,descriptor){
          let src_method=descriptor.value;
          descriptor.value=(...arg)=>{
            src_method.apply(target,arg);
            console.info(`log ${type}`);
          }
        }
      }
    
      class AD{
        @log('show')
        show(){
          console.info('ad is show')
        }
        @log('click')
        click(){
          console.info('ad is click');
        }
      }
    
      let ad=new AD();
      ad.show();
      ad.click();
    }
  • 相关阅读:
    1253:抓住那头牛
    1251:仙岛求药
    1330:【例8.3】最少步数
    1329:【例8.2】细胞
    1216:红与黑
    1217:棋盘问题
    回溯法与深度优先搜索的关系
    自然数的拆分
    100——第35例
    100——第34例
  • 原文地址:https://www.cnblogs.com/diasa-fly/p/7026316.html
Copyright © 2011-2022 走看看