装饰器专题测试
考察知识点
- 装饰器基础: 装饰器概念、启用配置、执行顺序
- 类装饰器: 类修饰、构造函数拦截、原型扩展
- 方法装饰器: 方法修饰、属性描述符、方法重写
- 属性装饰器: 属性元数据、访问修饰
- 参数装饰器: 参数位置、依赖注入应用
💡 参考答案在文末
判断题
1
访问器装饰器可以同时应用于 getter 和 setter,它们共享同一个属性描述符。
2
使用类装饰器扩展类后,原始类的实例化方式(new 操作符)不需要做任何改变。
3
属性装饰器应用于类的静态属性时,target 参数是类的构造函数。
4
属性装饰器接收参数描述符(PropertyDescriptor)作为第三个参数。
5
类装饰器接收的参数是类的构造函数,返回值可以是 void 或者一个新的构造函数。
6
方法装饰器只能接收三个参数:原型对象、方法名和方法的描述符。
7
当方法装饰器应用于静态方法时,target 参数是该类的构造函数而非原型对象。
8
访问器装饰器的参数签名与方法装饰器完全相同。
单选题
9
使用方法装饰器实现权限校验时,如果校验失败应该?
10
使用访问器装饰器实现属性懒加载,正确的做法是?
11
使用方法装饰器实现日志记录时,正确的做法是?
12
使用访问器装饰器实现只读属性拦截,应该修改 descriptor 的哪个部分?
13
使用类装饰器为类添加静态方法,正确的实现方式是?
14
关于类装饰器的执行时机,以下说法正确的是?
15
使用属性装饰器实现字段校验,正确的实现思路是?
16
属性装饰器常用于实现元数据注入,以下方式正确的是?
多选题
17
以下哪些是方法装饰器的典型应用场景?
18
以下哪些场景适合使用类装饰器实现?
19
以下哪些场景适合使用访问器装饰器实现?
20
以下哪些是属性装饰器的典型用途?
参考答案
1.正确
2.错误
3.正确
4.错误
5.正确
6.正确
7.正确
8.正确
9.A
10.A
11.B
12.B
13.B
14.B
15.B
16.A
17.A;C;D
18.A;B;C
19.A;C;D
20.A;C;D
想在手机上练习这套试卷?
使用微信卷王开发者小程序,打开首页顶部扫码功能识别二维码