es6 语法 (Decorator)
Posted 小角色Byme
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了es6 语法 (Decorator)相关的知识,希望对你有一定的参考价值。
修饰器是一个函数,用来修改类的行为(注意:1、函数 2、修改行为 3、对类进行操作)
{ //修饰器函数定义 target:类本身,name名称,descriptor描述 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()); //2017-03-11 } { 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‘) //log show show(){ console.log(‘ad is show‘) //ad is show } @log(‘click‘) //log click click(){ console.log(‘ad is click‘) //ad is click } } let ad = new AD(); ad.show(); ad.click(); }
以上是关于es6 语法 (Decorator)的主要内容,如果未能解决你的问题,请参考以下文章