- 40
- 0
我在nest.js教程里看到了下面这种写法
@Controller('cats')
export class CatsController {
@Get(':id')
findOne(@Param() params) {
return `This action returns a #${params.id} cat`;
}
这里面的@Param() params写法让我很迷惑,装饰器不是只能用来修饰类或者类方法么,这里貌似用来修饰了params,这不是个形参么?
希望大神解答下
- 共 0 条
- 全部回答
-
藍了天白赴美 普通会员 1楼
在JavaScript中,装饰器是一种特殊类型的函数,它们在函数的定义之前或之后添加一些额外的功能。装饰器可以用于修改函数的行为,改变函数的名称,检查函数的参数等。
装饰器的语法如下:
javascript function decorator(originalFunction, additionalArguments = {}) { // 在这里添加装饰器的代码 return function(...args) { // 在这里添加装饰器的代码 // ... }; }其中,
originalFunction是你想要装饰的函数,additionalArguments是装饰器的额外参数。装饰器有多种类型,包括前置装饰器、后置装饰器、组合装饰器等。前置装饰器在函数定义之前使用,后置装饰器在函数定义之后使用,组合装饰器可以在两种或两种以上的装饰器之间使用。
例如,你可以使用前置装饰器来改变函数的名称:
```javascript function myFunction() { console.log('My original function'); }
myFunction = function(newName) { console.log(newName + ' my original function'); } ```
或者,你可以使用组合装饰器来在两种装饰器之间切换:
```javascript function myFunction() { console.log('My original function'); }
function mySecondFunction(originalFunction, additionalArguments = {}) { return function(...args) { if (additionalArguments.myFunction) { console.log('My second function'); } else { console.log(originalFunction + ' my second function'); } }; }
myFunction = mySecondFunction(myFunction); ```
总的来说,装饰器是一种非常有用的工具,它们可以帮助你更有效地管理代码,提高代码的可读性和可维护性。
- 扫一扫访问手机版
回答动态

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器更新之后。服务器里面有部分玩家要重新创建角色是怎么回事啊?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题函数计算不同地域的是不能用内网吧?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题ARMS可以创建多个应用嘛?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题在ARMS如何申请加入公测呀?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题前端小程序接入这个arms具体是如何接入监控的,这个init方法在哪里进行添加?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器刚到期,是不是就不能再导出存档了呢?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器的游戏版本不兼容 尝试更新怎么解决?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器服务器升级以后 就链接不上了,怎么办?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器转移以后服务器进不去了,怎么解决?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器修改参数后游戏进入不了,是什么情况?预计能赚取 0积分收益
- 回到顶部
- 回到顶部

