小满nestjs(第三章 前置知识装饰器)

简介: 属性描述符 可写对应writable,可枚举对应enumerable,可配置对应configurable

1、什么是装饰器


装饰器是一种特殊的类型声明,他可以附加在类,方法,属性,参数上面


装饰器写法 tips(需要开启一项配置)


95a018ec2abe4c20adeea449534d0ded.png


类装饰器 主要是通过@符号添加装饰器


他会自动把class的构造函数传入到装饰器的第一个参数 target


然后通过prototype可以自定义添加属性和方法


function decotators (target:any) {
    target.prototype.name = '小满'
}
@decotators
class Xiaoman {
    constructor () {
    }
}
const xiaoman:any = new Xiaoman()
console.log(xiaoman.name)


属性装饰器


同样使用@符号给属性添加装饰器


他会返回两个参数


1.原形对象


2.属性的名称


const currency: PropertyDecorator = (target: any, key: string | symbol) => {
    console.log(target, key)
}
class Xiaoman {
    @currency
    public name: string
    constructor() {
        this.name = ''
    }
    getName() {
        return this.name
    }
}


959aaf97cc6947aca0f251421bc1ea80.png


参数装饰器


同样使用@符号给属性添加装饰器


他会返回两个参数


1.原形对象


2.方法的名称


3.参数的位置从0开始


const currency: ParameterDecorator = (target: any, key: string | symbol,index:number) => {
    console.log(target, key,index)
}
class Xiaoman {
    public name: string
    constructor() {
        this.name = ''
    }
    getName(name:string,@currency age:number) {
        return this.name
    }
}

3f11e88774bc4339993b1571a80da72a.png


方法装饰器


同样使用@符号给属性添加装饰器


他会返回两个参数


1.原形对象


2.方法的名称


3.属性描述符  可写对应writable,可枚举对应enumerable,可配置对应configurable


fa38175eb8974aa090c099c535c101d0.png


const currency: MethodDecorator = (target: any, key: string | symbol,descriptor:any) => {
    console.log(target, key,descriptor)
}
class Xiaoman {
    public name: string
    constructor() {
        this.name = ''
    }
    @currency
    getName(name:string,age:number) {
        return this.name
    }
}


目录
相关文章
|
2月前
|
设计模式 JavaScript 开发工具
Vue开发中使用好钩子方法(hook method)可以使你的代码更加模块化和可维护
Vue开发中使用好钩子方法(hook method)可以使你的代码更加模块化和可维护
26 0
|
7月前
|
JavaScript 前端开发 API
Nestjs(一)入门前置知识点
Nestjs(一)入门前置知识点
127 3
|
设计模式 JSON 前端开发
前端面试必看(手写Promise+js设计模式+继承+函数柯里化等)JavaScript面试全通关(1/3)
前端面试必看(手写Promise+js设计模式+继承+函数柯里化等)JavaScript面试全通关(1/3)
79 0
|
前端开发
前端学习笔记202306学习笔记第三十六天-js-利用构造器的形式创建对象
前端学习笔记202306学习笔记第三十六天-js-利用构造器的形式创建对象
871 0
小满nestjs(第四章 前置知识装饰器-实现一个GET请求)
定义 descriptor 的类型 通过 descriptor描述符里面的value 把axios的结果返回给当前使用装饰器的函数
88 0
小满nestjs(第四章 前置知识装饰器-实现一个GET请求)
小满nestjs(第二十二章 nestjs 自定义装饰器)
在Nestjs 中我们使用了大量装饰器 decorator ,所以Nestjs 也允许我们去自定义装饰器。
171 0
小满nestjs(第二十二章 nestjs 自定义装饰器)
|
前端开发 JavaScript 安全
前端祖传三件套JavaScript的函数之Function() 构造器
在JavaScript中,函数是实现各种功能和业务逻辑的基本手段。除了常规的函数声明和函数表达式外,JavaScript还支持通过Function()构造器来进行函数定义。在这篇文章中,我们将介绍JavaScript中的Function()构造器,以及其使用方法和注意事项。
87 0
|
设计模式 Java 程序员
程序中的奇技淫巧--语法糖
程序中的奇技淫巧--语法糖
129 0
程序中的奇技淫巧--语法糖
|
JavaScript 安全 API
Pinia进阶:优雅的setup(函数式)写法+封装到你的企业项目
开场 Hello大家好,相信在座各位假如使用Vue生态开发项目情况下,对Pinia状态管理库应该有所听闻或正在使用,假如还没接触到Pinia,这篇文章可以帮你快速入门,并如何在企业项目中更优雅封装使用
Pinia进阶:优雅的setup(函数式)写法+封装到你的企业项目
|
前端开发 JavaScript
#yyds干货盘点# 【js学习笔记三十三】前端原型和原型链constructor
#yyds干货盘点# 【js学习笔记三十三】前端原型和原型链constructor
176 0
#yyds干货盘点# 【js学习笔记三十三】前端原型和原型链constructor

热门文章

最新文章