概述
/**
* Decorator(修饰器,是一个函数,用来修改类的行为)
* 扩展类的功能
*
* 第三方库修饰器的js库:core-decorators; npm install core-decorators
*
*/
{ //基本用法 1
/**
*
* @param target 修改的类的本身
* @param name 修改类属性的名称
* @param descriptor 该属性的描述对象
* @returns {*}
*/
let readonly=function(target,name,descriptor){
descriptor.writable=false; //限制不可写
return descriptor
};
class Test{
@readonly //调用修饰器
time(){
return '2017-03-11'
}
}
let test=new Test();
// 修改time()函数会报错
// test.time=function(){
// console.log('reset time');
// };
console.log(test.time());
}
{ //基本用法 2
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();
}
最后
以上就是明理蚂蚁为你收集整理的016-Decorator(修饰器,是一个函数,用来修改类的行为)的全部内容,希望文章能够帮你解决016-Decorator(修饰器,是一个函数,用来修改类的行为)所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复