gpt4 book ai didi

JavaScript window.onerror 和 this 关键字

转载 作者:行者123 更新时间:2023-12-03 08:51:43 25 4
gpt4 key购买 nike

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

如果我将此代码放在对象方法之外,我将无法获得 obj参数,如果我把它放在 class方法,我无法得到正确的obj什么时候是 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;
};

如果我使用,例如:
window.onerror = function (message, url, lineNumber, colNumber,error,obj) {
...
};

在全局范围内我无法获得 obj参数,不用说我需要引发错误的实例。我知道解决方案是在调用、应用或绑定(bind)之间,但需要帮助。

最佳答案

我认为在第一种情况下你不能“使用”'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;
};
};

关于JavaScript window.onerror 和 this 关键字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39143335/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com