码迷,mamicode.com
首页 > 其他好文 > 详细

ES6-----学习系列十七(Decorator)

时间:2017-06-16 11:28:45      阅读:115      评论:0      收藏:0      [点我收藏+]

标签:eth   logs   .sh   function   tab   ora   click   info   set   

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();
}

 

ES6-----学习系列十七(Decorator)

标签:eth   logs   .sh   function   tab   ora   click   info   set   

原文地址:http://www.cnblogs.com/diasa-fly/p/7026316.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!