es7的Decorators(装饰器)

技术网红
• 阅读 3136

es7的Decorators(装饰器)

修饰器(Decorator)是一个函数,用来修改类的行为。这是ES7的一个提案,目前Babel转码器已经支持。
需要先安装一个插件:npm install babel-plugin-transform-decorators-legacy --save-dev 然后在项目根目录下,找到:.babelrc=>修改为"plugins": ["transform-decorators-legacy"]

//装饰器本质是一个函数
//装饰对象可以使用多个装饰器
//装饰器可以带参数
//装饰器修饰类,实例方法
//aop 设计思想(log,邮件发送)
function school(target){
    target.schoolName="师徒课堂";
}
function hometown(diqu){
    return function(target){
        target.home=diqu;
    }
}
function studyke(kemu){
    return function(target){
        target.ke=kemu;
    }
}

@hometown("黑龙江")
@school

class Student {
    constructor(name){
        this.name=name;
    }
    @studyke("做梦")
    study(){
        console.log(this.name+"在家睡觉"+this.ke);
    }
}
console.log(Student.schoolName);//打印师徒课堂.
console.log(Student.home);//打印黑龙江.

let l = new Student("姜姜");
l.study();//打印姜姜在家睡觉做梦.

@school
class Teacher {
    
}
console.log(Teacher.schoolName);//打印师徒课堂
我们需要babel转成es5,因为很多浏览器还不支持这么高版本的代码
点赞
收藏
评论区
推荐文章
半臻 半臻
4年前
Python基础5——装饰器
13、装饰器其本质:在不需要做任何代码变动的前提下,增加额外的功能。装饰器返回的是一个函数对象。相当于把函数作为参数传递进去,然后对函数进行装饰其本质就是一个闭包作用:1.给原来的函数增加额外的功能2.把原来的函数作为参数传递进去13.1基本用法标准版的装饰器pythondefwrapper(func):func为原来的函数名defin
Irene181 Irene181
4年前
恶补了 Python 装饰器的六种写法,你随便问~
大家好,我是明哥。今天给大家分享一下关于装饰器的知识点,内容非常干,全程高能,认真吸收看完,一定会对装饰器有更深的理解。Hello,装饰器装饰器本质上是一个Python函数,它可以让其他函数在不需要做任何代码变动的前提下增加额外功能,装饰器的返回值也是一个函数对象。它经常用于有切面需求的场景,比如:插入日志、性能测试、事务处理、缓存、权限校验等场景。装饰
Python进阶者 Python进阶者
4年前
浅析装饰器的那些事儿
一、装饰器的简单定义外层函数返回里层函数的引用,里层函数引用外层函数的变量。二、装饰器的作用通俗来讲装饰器的作用就是在不改变已有函数代码前提下,为该函数增加新的功能。defrun():print('我会跑')fun()现在我想在原有函数的基础上新增一个功能:我会唱歌。这个时候利用装饰器则轻松可以帮我们实现这个功能。三、实
Stella981 Stella981
3年前
ES6(Decorator(修饰器))
Decorator(修饰器)1.基本概念函数用来修改类的行为1.Decorator是一个函数2.通过Decorator(修饰器)能修改类的行为(扩展类的功能)3.Decorator(修饰器)只在类的范围有用2.基本用法见代码一、Decorator(修饰器)定义!(https://oscimg.oschina
Wesley13 Wesley13
3年前
ES6 系列之我们来聊聊装饰器
_摘要:_ Decorator装饰器主要用于:1.装饰类2.装饰方法或属性装饰类\\\js@annotation(https://my.oschina.net/annotation)classMyClass{}functionannotation(target){target.annotatedt
Stella981 Stella981
3年前
Python之路(第二十八篇) 面向对象进阶:类的装饰器、元类
一、类的装饰器类作为一个对象,也可以被装饰。例子defwrap(obj):print("装饰器")obj.x1obj.y3obj.z5returnobj​
Stella981 Stella981
3年前
Python进阶笔记(2)
'''装饰器装饰器(Decorators)是Python的一个重要部分。简单地说:他们是修改其他函数的功能的函数。他们有助于让我们的代码更简短。如果已经接触过FLASK的,想想路由功能。如果没有接触过FLASK的,建议学习下。''''''各种推导式(compre
Stella981 Stella981
3年前
Python 装饰器(Decorator)
Python 装饰器(Decorator)装饰模式有很多经典的使用场景,例如插入日志、性能测试、事务处理等等,有了装饰器,就可以提取大量函数中与本身功能无关的类似代码,从而达到代码重用的目的。下面就一步步看看Python中的装饰器。装饰器本身是一个Python函数,他可以让其他函数在不需要做任何代码变动
Stella981 Stella981
3年前
Python装饰器用法实例总结
一、装饰器是什么python的装饰器本质上是一个Python函数,它可以让其他函数在不需要做任何代码变动的前提下增加额外功能,装饰器的返回值也是一个函数对象。简单的说装饰器就是一个用来返回函数的函数。它经常用于有切面需求的场景,比如:插入日志、性能测试、事务处理、缓存、权限校验等场景。装饰器是解决这类问题的绝佳设计,有了装饰器,我们就可以抽离
Stella981 Stella981
3年前
Python中函数装饰器及练习
1)装饰器的理解:1、作用:在不改变原函数的基础上,给函数增加功能   2、返回值:把一个函数当作参数,返回一个替代版的函数3、本质:返回函数的函数4、应用场景:计时器、记录日志、用户登陆认证、函数参数认证2)无参函数装饰器  实例:被装饰的函数没有参数     执行结果为:  
GeorgeGcs GeorgeGcs
1个月前
【HarmonyOS 5】鸿蒙的装饰器原理和自定义装饰器
鸿蒙开发能力HarmonyOSSDK应用服务鸿蒙金融类应用(金融理财一、鸿蒙中的装饰器是什么?在ArkTS中装饰器(Decorator)是一种特殊的声明,能够对类、方法、属性等进行标注和修改。因为ArkTS是TypeScript扩展而来的编程语言,Type
技术网红
技术网红
Lv1
上有流思人,怀旧望归客。
文章
6
粉丝
0
获赞
0