ES6学习笔记17 Decorator修饰器 浏览器不支持

{
// 1.修饰器是一个函数 2.修改行为 3.修改类的行为
let readonly=function (target,name,descriptor) {
descriptor.writable=false
return descriptor
}

class Test{
@readonly
time(){
return '2020-05-02'
}
}

let test = new Test()

test.time=function(){
console.log(2)
}

console.log(test.time())


}

{
let typename=function(target,name,descriptor){
target.myname='hello'
}

@typename
class Test{

}

console.log('类修饰符',Test.myname)

// 第三方库 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.log(`log ${type}`)
// 实际 new img.src 接口
}
}
}

class ad{

@log('show')

show(){
console.info('ad is show')
}

@log('click')
click(){
console.log('ad is click')
}
}

let ad = new ad()
ad.show()
ad.click()


}

猜你喜欢

转载自www.cnblogs.com/laohange/p/12815760.html