其他分享
首页 > 其他分享> > es6 decorator

es6 decorator

作者:互联网

decorator修改类 的行为 (扩展类的功能) 的函数

1.修饰类

@testable
class MyClass{}

function testable(target){
    target.isTestable=true
}

console.log(MyClass.isTestable) // true

也可以在prototype上修改属性,也可以为修饰器添加多个参数。

@testable(false)
class MyAnotherClass{
    
}
function testable(status){
    return target=>{target.prototype.isTestable=status}
}
console.log('MyClass.isTestable',MyAnotherClass.prototype.isTestable) // false

2.修饰方法

//
function readonly(target,key,descriptor){
    descriptor.writable=false
    return descriptor
}

class MyClass{
    @readonly
    print(){return '2021'}
}
let test=new MyClass();
console.log(test.print());

 

标签:es6,false,target,isTestable,console,MyClass,testable,decorator
来源: https://www.cnblogs.com/sunmarvell/p/14386733.html