Chrome 是否支持错误对象上的 lineNumber 属性?
Does Chrome support the lineNumber property on error objects?
MDN 声称 Chrome 支持非标准 属性 Error.prototype.lineNumber
"On error object in handled errors."。我摆弄了一下,但无法验证这一点。
try
{
throw new Error;
}
catch (error)
{
alert('lineNumber is ' + error.lineNumber);
}
当 运行 上面的代码片段时,只有 Firefox 将 error.lineNumber
设置为数值。 Safari 使用类似的非标准 属性 error.line
,而 Chrome 似乎根本没有任何类似的功能。我知道行号在 stack
中,如果你解析它,并且有库可以提取它,但不清晰困扰着我。
MDN 文档是否过时或者我在这里遗漏了什么?
我认为您在这里没有遗漏任何内容。如果 V8(Chrome 的 JavaScript 引擎)在某个阶段支持它,它目前似乎肯定不支持,所以我猜这属于 MDN 的“......未来可能会改变行为”或者,请记住 MDN 是 collaboratively-edited,Chrome 支持它可能总是错误的。
正如 MDN 页面所说,lineNumber
或类似的东西是 not in the spec。
鉴于我们都没有看到任何迹象表明 V8 支持它,我已经更正了 MDN 文章。
MDN 声称 Chrome 支持非标准 属性 Error.prototype.lineNumber
"On error object in handled errors."。我摆弄了一下,但无法验证这一点。
try
{
throw new Error;
}
catch (error)
{
alert('lineNumber is ' + error.lineNumber);
}
当 运行 上面的代码片段时,只有 Firefox 将 error.lineNumber
设置为数值。 Safari 使用类似的非标准 属性 error.line
,而 Chrome 似乎根本没有任何类似的功能。我知道行号在 stack
中,如果你解析它,并且有库可以提取它,但不清晰困扰着我。
MDN 文档是否过时或者我在这里遗漏了什么?
我认为您在这里没有遗漏任何内容。如果 V8(Chrome 的 JavaScript 引擎)在某个阶段支持它,它目前似乎肯定不支持,所以我猜这属于 MDN 的“......未来可能会改变行为”或者,请记住 MDN 是 collaboratively-edited,Chrome 支持它可能总是错误的。
正如 MDN 页面所说,lineNumber
或类似的东西是 not in the spec。
鉴于我们都没有看到任何迹象表明 V8 支持它,我已经更正了 MDN 文章。