CocosCreator JS追踪堆栈信息

news/2024/7/24 2:30:08 标签: CocosCreator, Javascript, 堆栈

在开发过程中,可能有这样的需求:即使在没有报错的情况,也需要查看该函数的堆栈调用信息。

对于这样的需求,我们可以使用JS原生的console.trace来实现。

具体代码:

export let TraceArr = [];


console.trace = function () {
    var fun = arguments.callee;
    let num = 0; //追踪的堆栈深度,可自行设置
    do {
        fun = fun.arguments.callee.caller;
        if (fun && num != 0) {
            TraceArr.push(fun.toString());
        }
        num++;
        if (num >= 2 || !fun) {
            TraceArr.push("\n--------------------------\n");
            break;
        }
    } while (true);
}

但是,以上方法不能在原生环境(android,ios)中使用,会报以下的错误:

 

所以,CocosCreator应该使用其他的实现方式,这个方法简便:

export let TraceArr = [];
function saveStackTrace() {
    TraceArr.push(+"-" + new Error().stack);
}

 


http://www.niftyadmin.cn/n/1300980.html

相关文章

深入解析ES6中的迭代器(Iterator)和生成器(Generator)

用循环语句迭代数据时,必须要初始化一个变量来记录每一次迭代在数据集合中的位置,而在许多编程语言中,已经开始通过程序化的方式用迭代器对象返回迭代过程中集合的每一个元素 迭代器的使用可以极大地简化数据操作,于是ES6也向JS中…

OSI七层网络模型 TCP/IP 三次握手 四次挥手

1、概念 OSI 七层模型 (开放系统互联 Open System Interconnection )

CocosCreator多语言包的处理

如果项目需要国际化的处理,也就是需要切换语言的功能时,一般有两种方案: 单个包 优点: 1.可以动态切换语言(当然要代码上实现) 2.只有一个版本,容易维护 缺点: 1.安装包大 多…

React 的几种条件渲染以及选择详解

对于一个展示页面来讲, 通常有好几种展示状态(以列表页为例): 数据为空, 空页面取数据时发生错误, 错误页面数据正常加载状态 针对以上三种情况, react渲染列表的时候要正确判断并渲染出相应的视图, 也就是条件渲染. 不同于vue的v-if, v-show等框架提供的api, react的条件渲染…

Android判断系统语言是简体还是繁体

在SDK的版本为24之前,我们获取语言的配置是通过 getResources().getConfiguration().locale; 来获取的,但是24之后(包括24)“.locale”就弃用了,需要 getResources().getConfiguration().getLocales().get(0); 来获…

Android获取唯一标识码

博客转载自:https://www.jianshu.com/p/a185d3a702c6 在我们的APP开发中,通常需要获取到设备的唯一标识。在Android6.0之前,有很多方法我们可以方便获取到硬件的唯一标识,但是在Android6.0之后,Android系统大幅限制了我…

Node.js中path模块的resolve()和join()方法的区别

关于Node.js中path模块的resolve()和join()方法的比较,对照着总结看例子差不多以后在写模块的时候思路就能很清晰了 resolve 作用:path.resolve() 该方法将一些的 路径/路径段 解析为绝对路径。 语法:path.resolve([…paths]) 说明&#…

JavaBean中DAO设计模式介绍

一、信息系统的开发架构 客户层-------显示层-------业务层---------数据层---------数据库 1.客户层:客户层就是客户端,简单的来说就是浏览器。 2.显示层:JSP/Servlet,用于给浏览器显示。 3.业务层:对于数据层的原子操…