TypeScript中如何调用栈

小编给大家分享一下TypeScript中如何调用栈,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!

本文介绍了TypeScript之调用栈,分享给大家,具体如下:

classCallStackTool{
privatestaticindex:number=0;
publicstaticprintCallStack(count:number,simple:boolean=true):void{
letcaller:Function=arguments.callee.caller;
leti:number=0;
count=count||10;
CallStackTool.index++;
if(CallStackTool.index>500)CallStackTool.index=1;
console.log(`***-----------------${CallStackTool.index}Start-----------------------**`);
while(caller&&i<count){
console.log(`${(i+1)}:\n${CallStackTool.getFunctionName(caller,simple)}`);
caller=caller.caller;
i++;
}
console.log(`***-----------------${CallStackTool.index}End-----------------------**`);
}

privatestaticgetFunctionName(func:any,simple:boolean):string{
if(simple){
letname:any;
if(typeoffunc=='function'){
name=(''+func).match(/function\s*\((\s*\$*\S+\s*,)*(\s*\$*\S+\s*)?\)/g);
let$result:string=name&&name[0];
if($result!=`function()`){
return$result;
}
}
}
returnfunc.toString();
}
}

测试代码:

classTest2CallStack{

publicadd(i:number,b:number):number{
CallStackTool.printCallStack(2,true);
returni+b;
}

publica(c:number,q:number):number{
returnthis.add(c,q);
}

publicprint():void{
console.log(`${this.a(1,1)}`);
}
}

开始测试:

TypeScript中如何调用栈

结果:

TypeScript中如何调用栈

所以,尽量给function的参数取一些好的名字.

另外一点 , 不会出现function()这样的打印 , 出现没有参数的function , 我会将方法体内容也打印出来

如果需要把每一个function的方法体的内容打印出来CallStackTool.printCallStack(2,false), 将第二个参数设置未false

以上是“TypeScript中如何调用栈”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注恰卡编程网行业资讯频道!

发布于 2021-05-30 14:07:06
收藏
分享
海报
0 条评论
158
上一篇:C语言如何实现opencv提取直线、轮廓及ROI 下一篇:CSS选择器如何实现字段
目录

    0 条评论

    本站已关闭游客评论,请登录或者注册后再评论吧~

    忘记密码?

    图形验证码