基本概念
Descrotor是一个函数,它可以用来修改类的行为,它只在类范围内使用。
基本用法
类的修饰
let typename = function(target,name,descriptor){
//在类上添加静态属性myname
target.myname='hello'
}
//使用修饰器
@typename
class Test{
}
//使用类去调用
console.log(Test.myname);
方法的修饰
//修饰器函数
//三个参数(类的实例对象,修改的属性名,该属性的描述对象)
let readonly = function(target,name,descriptor){
//属性修改成只读
descriptor.writable = false;
return descriptor
};
class Test{
//使用修饰器 写在类里面!!!
@readonly
//属性
name(){
return 'Tim Chen'
}
}
//生成实例
let test = new Test();
console.log(test.name()); //Tim Chen
//重新赋值
// test.name=()=> Lee;
// console.log(test.name()); //抛出错误