符号是什么<和/表示这个Firefox堆栈跟踪?

时间:2016-09-06 19:53:51

标签: javascript debugging firefox stack-trace

我在Firefox中引发了JavaScript错误,但在Chrome中却没有。 Firefox devtools的Console窗口中的堆栈跟踪如下所示。例外情况发生在this minified file

我想知道符号</在堆栈跟踪中是否有特殊含义,因为我以前从未在堆栈跟踪中看到类似的内容。我最好的猜测是它与对象的子方法有关。

enter image description here

文字版:

TypeError: a is null
    p</G()
    p</Y()
    p</$()
    M</f/this.normalize/a()
    M</f/this.normalize()
    U/this.currentStyle()
    ...

1 个答案:

答案 0 :(得分:0)

以下是我的猜测,而不是官方文档。

符号/表示“嵌套”,例如fn1/fn2@file.js的意思是“您在函数fn1内定义的函数fn2中”。

function fn1() {
    function fn2() {
        // Here the stack trace in Firefox will look like:
        // fn1/fn2@file.js - function fn2, which is nested in fn1
        // fn1@file.js     - function fn1
        // @file.js        - global code
    }
}

fn1();

符号<的含义类似于“闭包中的匿名函数”。考虑以下示例:

const fn1 = (function(fn) {
    return function() {
        fn();
    }
}(function() {
    // Here the stack trace in Firefox will look like:
    // fn1<@file.js - anonymous function from a closure in function fn1
    // fn1@file.js  - function fn1
    // @file.js     - global code
}));

fn1();

更多示例可用于: