MDN声称Chrome支持处理错误中的非标准属性Error.prototype.lineNumber
"错误对象。" 。我摆弄了一下,但无法验证这一点。
try
{
throw new Error;
}
catch (error)
{
alert('lineNumber is ' + error.lineNumber);
}

运行上面的代码段时,只有Firefox将error.lineNumber
设置为数字值。 Safari使用类似的非标准属性error.line
,而Chrome似乎根本没有任何类似的功能。我知道如果你解析它的行号在stack
,并且有些库可以提取它,但是不清楚会让我烦恼。
MDN文档是否已过时或我在这里遗漏了什么?
答案 0 :(得分:3)
我不认为你在这里遗漏任何东西。如果V8(Chrome的JavaScript引擎)在某个阶段支持它,它当前肯定不会,所以我猜这属于MDN的“......行为可能在未来发生变化。”或者,请记住MDN是经过协作编辑的,Chrome支持它可能总是错误的。
正如MDN页面所说,lineNumber
或类似的内容是not in the spec。
鉴于我们都没有看到V8支持它的任何迹象,我已经更正了MDN文章。