Javascript TypeError非对象属性加载意味着什么?
我在正在调试的javascript中看到了很多错误。在JS控制台中,Chrome所说的与Javascript TypeError非对象属性加载意味着什么?,javascript,google-chrome,Javascript,Google Chrome,我在正在调试的javascript中看到了很多错误。在JS控制台中,Chrome所说的与 TypeError arguments: Array[2] message: "-" stack: "-" type: "non_object_property_load" __proto__: Error 我通常可以通过自己的方式解决根本问题,但一般来说,错误代表什么 有没有办法获取导致问题的行的堆栈跟踪?您正试图从null或未定义的访问某些内容 例如,此代码将引
TypeError
arguments: Array[2]
message: "-"
stack: "-"
type: "non_object_property_load"
__proto__: Error
我通常可以通过自己的方式解决根本问题,但一般来说,错误代表什么
有没有办法获取导致问题的行的堆栈跟踪?您正试图从
null
或未定义的访问某些内容
例如,此代码将引发以下错误:
null.foo;
您应该检查正在从哪些对象访问哪些属性,并使用类似于obj和&obj.prop
的内容,而不仅仅是obj.prop
您可以使用以下方法获取堆栈跟踪:
console.log(new Error().stack);
-
表示该属性是一个getter,不会自动显示,因为getter可能有副作用。堆栈可用(-
并不表示“不可用”);您只需显式访问它。在这种情况下,为什么chrome不像其他异常那样显示堆栈跟踪?@Leopd:您是通过控制台进行评估的吗?如果我能正常执行,它对我来说效果很好,例如,是的,像你的小提琴这样的简单箱子总是显示行号。它还表示“UncaughtTypeError:无法读取null的属性'foo',而不是模糊的消息。我只在深入复杂代码时看到“非对象属性加载”。我希望我知道为什么异常有时不能被正确捕获和呈现。谢谢你解释这部分。为什么它有时不能正确地抛出错误,这个谜团值得提出自己的问题。