首页 > 代码库 > ES6-----学习系列十七(Decorator)
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(); }
ES6-----学习系列十七(Decorator)
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。