JavaScript window.onerror和这个关键字

时间:2016-08-25 10:52:20

标签: javascript error-handling window

我在window.error事件上获取当前对象实例时遇到问题。

如果我把这个代码放在一个对象方法之外,我就不能得到obj参数,如果我把它放在class方法中,我就得不到正确的{{1 } when是另一个obj的{​​{1}}。

示例:

instanceOf

如果我使用,例如:

class

在全球范围内,我无法获取//addTableEvents is a method addTableEvents: function () { var obj = this; window.onerror = function (message, url, lineNumber, colNumber, error, obj) { var errInfo = { INSTANCE: obj.tableId, DATE: window.Date(), PATH: window.location.href, STACKTRACE: error.stack, ENV: window.navigator.userAgent, }; console.log(errInfo); obj.logError(errInfo); return true; }; 参数,并且不用说我需要实现错误的实例。我知道解决方案是在调用,应用或绑定之间,但需要帮助。

1 个答案:

答案 0 :(得分:0)

我认为在第一种情况下你不能“使用”'obj',因为它也是函数的一个参数而不仅仅是一个全局变量。

(还有一个缺失};但这可能是复制/粘贴拼写错误。) 试试这个:

//addTableEvents is a method
addTableEvents: function () {
    var obj = this;
    window.onerror = function (message, url, lineNumber, colNumber, error) {
        var errInfo = {
            INSTANCE: obj.tableId,
            DATE: window.Date(),
            PATH: window.location.href,
            STACKTRACE: error.stack,
            ENV: window.navigator.userAgent,
        };

        console.log(errInfo);
        obj.logError(errInfo);
        return true;
    };
};