全部学科
NodeJS全栈
nodejs
Python全栈
python
小程序首页

装饰器专题测试

20 题 75 分钟 难度:

考察知识点

  1. 装饰器基础: 装饰器概念、启用配置、执行顺序
  2. 类装饰器: 类修饰、构造函数拦截、原型扩展
  3. 方法装饰器: 方法修饰、属性描述符、方法重写
  4. 属性装饰器: 属性元数据、访问修饰
  5. 参数装饰器: 参数位置、依赖注入应用
1
判断题

类装饰器接收的参数是类的构造函数,返回值可以是 void 或者一个新的构造函数。

A

B

2
判断题

使用类装饰器扩展类后,原始类的实例化方式(new 操作符)不需要做任何改变。

A

B

3
单选题

关于类装饰器的执行时机,以下说法正确的是?

A

类装饰器在创建类实例时执行

B

类装饰器在类定义时被执行一次

C

类装饰器在每次调用类方法时执行

D

类装饰器在模块加载时每秒执行一次

4
单选题

使用类装饰器为类添加静态方法,正确的实现方式是?

A

修改 constructor.prototype 添加方法

B

直接在构造函数上添加方法属性

C

使用 Object.defineProperty 在原型上定义

D

必须返回全新的类定义

5
多选题

以下哪些场景适合使用类装饰器实现?

A

为类的所有实例添加共享方法

B

拦截类的构造函数调用

C

为类添加静态属性或方法

D

修改类实例的属性访问行为

6
判断题

方法装饰器只能接收三个参数:原型对象、方法名和方法的描述符。

A

B

7
判断题

当方法装饰器应用于静态方法时,target 参数是该类的构造函数而非原型对象。

A

B

8
单选题

使用方法装饰器实现日志记录时,正确的做法是?

A

直接修改原方法体添加 console.log

B

在 descriptor.value 中包装原方法,在调用前后记录日志

C

使用 Object.defineProperty 删除原方法

D

在类的构造函数中添加日志逻辑

9
单选题

使用方法装饰器实现权限校验时,如果校验失败应该?

A

抛出异常阻止方法执行

B

返回 undefined 但不记录任何信息

C

返回 null 继续执行后续逻辑

D

静默跳过方法调用

10
多选题

以下哪些是方法装饰器的典型应用场景?

A

日志记录与性能监控

B

修改方法参数类型

C

权限校验与安全拦截

D

事务管理与错误重试

11
判断题

访问器装饰器可以同时应用于 getter 和 setter,它们共享同一个属性描述符。

A

B

12
判断题

访问器装饰器的参数签名与方法装饰器完全相同。

A

B

13
单选题

使用访问器装饰器实现属性懒加载,正确的做法是?

A

在 descriptor.get 中检查缓存,未命中时计算并缓存

B

在 descriptor.set 中检查缓存

C

删除 descriptor.get 并直接赋值

D

在类的构造函数中初始化所有属性

14
单选题

使用访问器装饰器实现只读属性拦截,应该修改 descriptor 的哪个部分?

A

descriptor.writable = false

B

descriptor.set 设为 undefined 或抛出异常

C

descriptor.enumerable = false

D

descriptor.configurable = false

15
多选题

以下哪些场景适合使用访问器装饰器实现?

A

属性值的格式化和验证

B

方法执行时间的统计

C

敏感数据访问的审计日志

D

属性变更的通知机制

16
判断题

属性装饰器接收参数描述符(PropertyDescriptor)作为第三个参数。

A

B

17
判断题

属性装饰器应用于类的静态属性时,target 参数是类的构造函数。

A

B

18
单选题

使用属性装饰器实现字段校验,正确的实现思路是?

A

在装饰器中直接修改属性值

B

使用 Object.defineProperty 将属性替换为带校验的 getter/setter

C

在类的构造函数中重写所有属性

D

删除原始属性并添加新方法

19
单选题

属性装饰器常用于实现元数据注入,以下方式正确的是?

A

将元数据存储在 prototype 上的专属对象中

B

修改原始属性值来存储元数据

C

在全局变量中维护所有属性的元数据

D

使用 Reflect.defineProperty 定义新属性

20
多选题

以下哪些是属性装饰器的典型用途?

A

字段非空校验

B

方法执行性能监控

C

属性序列化/反序列化标记

D

ORM 实体列定义映射

← 上一个试卷 类型系统专题测试
下一个试卷 → 高阶工具类型专题测试

📝 发现内容有误?点击此处直接编辑

想参加完整模拟考试?
小程序提供计时考试、自动评分和详细解析

长按或扫描二维码,立即体验

扫码体验小程序
马上就来
使用微信扫描二维码
立即体验完整题库