vue学习--ES6中的装饰器

装饰器就是相当于给人或事多加一些东西 就是现实中装饰类似的意思 化妆打扮加衣服

装饰器(Decorator)是一种与类(class)相关的语法,用来注释或修改类和类方法与属性。许多面向对象的语言都有这项功能,一般和类class相关 普通函数 不要使用

进入代码就会执行完成

装饰器就是一种函数 ,写成@+函数名,它可以放在类和类方法的定义前面。

装饰类Foo
@frozen
class Foo{
    //装饰method方法
    @configurable(false)
    method(){
        //装饰yy方法
        @throttle(500)
        yy(){}
    }


}

1:修饰类 基本形式

//装饰器是一个函数 他可以给类或者属性方法加上一些其他东西
//实现一些代码的复用 大家写习惯之后 代码会简洁
function testable(target){
    target.isTestable = true;//相当于给 MyTestableClass.isTestable =true
    console.log('我是testable函数')
}



//class类

//在类或者类属性方法前面写上 @函数名,就相当于调用这个函数
@testable
class MyTestableClass{
    //...
}


//类似 testable( MyTestableClass)
function testable(isTestable){
    return function(target,...rest){
        console.log('参数',rest)
        target.isTestable = isTestable
    }

}

@testable(true)  //相当于先testable(true) 返回函数 再@函数
class MyTestableClass{}

console.log('add-MyTestableClass',MyTestableClass.isTestable) //true

//  类 方法 属性 有三个参数
function readonly(target,name,descriptor){
    console.log('target',target) //当前的person
    console.log('name',name) //你装饰的那个属性或者方法名
    console.log('descriptor',descriptor)   

    //descriptor对象原来的值如下
    {
        configurable:false,//能否使用delete 能否需改属性特性、或能否修改访问器属性、false为不可重新定义,默认值为true
        enumerable: false,//对象属性是否可通过for-in循环,flase为不可循环,默认值为true
        writable:false,//对象属性是否可修改,flase为不可修改,默认值为true
        value:'xiaoming' //对象属性的默认值
    };
    descriptor.writable = false;
    return descriptor

}


class Person {
    //可以在类之前用@函数名 装饰器,也可以在类的属性和方法之前
    @readonly 
    abc(){
        console.log('我是person的abc函数')
    }
    //我给xx属性 先用readonly这个装饰器 函数执行一下
    //装饰器函数 就是执行函数 帮助下面的属性或者方法 加一些控制条件
    //装饰器函数 实现了代码的复用
    @readonly
    xx=123
}

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
提供的源码资源涵盖了安卓应用、小程序、Python应用和Java应用等多个领域,每个领域都包含了丰富的实例和项目。这些源码都是基于各自平台的最新技术和标准编写,确保了在对应环境下能够无缝运行。同时,源码配备了详细的注释和文档,帮助用户快速理解代码结构和实现逻辑。 适用人群: 这些源码资源特别适合大学生群体。无论你是计算机相关专业的学生,还是对其他领域编程感兴趣的学生,这些资源都能为你提供宝贵的学习和实践机会。通过学习和运行这些源码,你可以掌握各平台开发的基础知识,提升编程能力和项目实战经验。 使用场景及目标: 在学习阶段,你可以利用这些源码资源进行课程实践、课外项目或毕业设计。通过分析和运行源码,你将深入了解各平台开发的技术细节和最佳实践,逐步培养起自己的项目开发和问题解决能力。此外,在求职或创业过程,具备跨平台开发能力的大学生将更具竞争力。 其他说明: 为了确保源码资源的可运行性和易用性,特别注意了以下几点:首先,每份源码都提供了详细的运行环境和依赖说明,确保用户能够轻松搭建起开发环境;其次,源码的注释和文档都非常完善,方便用户快速上手和理解代码;最后,我会定期更新这些源码资源,以适应各平台技术的最新发展和市场需求。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值