面试题答案
一键面试- 执行顺序:装饰器
@decorator3
最先执行,然后是@decorator2
,最后是@decorator1
。原因是装饰器从最靠近类定义的地方开始向外执行,就像剥洋葱一样,内层的先执行,外层的后执行。 - TypeScript 验证代码:
function decorator1(target: any) {
console.log('decorator1 执行');
return target;
}
function decorator2(target: any) {
console.log('decorator2 执行');
return target;
}
function decorator3(target: any) {
console.log('decorator3 执行');
return target;
}
@decorator1
@decorator2
@decorator3
class MyClass { }
当运行这段代码时,控制台会按顺序输出 decorator3 执行
、decorator2 执行
、decorator1 执行
,验证了上述执行顺序。