使用 Firefox,在 Firefox 扩展上工作,我不断收到 javascript 警告:
reference to undefined property mySidebar.context.netProgress
我已经尝试了多种测试值的方法:
if (mySidebar.context.netProgress === undefined) {
和
if (typeof mySidebar.context.netProgress == "undefined") {
和
if (!mySidebar.context.netProgress) {
和
if (mySidebar.context.netProgress == undefined) {
但是 Firefox 中的错误控制台每次都在同一行继续给我警告,有问题的行是我从上面发布代码的行。对值的实际检查导致了警告。
我还发出警报以检查 mySidebar.context 的值,它始终是一个对象,因此我收到的警告不是来自父项。
有什么想法吗?
最佳答案
正如 Swingley 所说,您可以使用 Object.prototype.hasOwnProperty()检查对象上是否存在直接属性。但是,这不适用于从原型(prototype)链继承的属性。对于继承和直接这两种情况,您可以使用 in operator :
if ("netProgress" in mySidebar.context) {
关于对未定义属性的 javascript 引用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3789277/