对未定义属性的javascript引用

对未定义属性的javascript引用,javascript,firefox,firefox-addon,Javascript,Firefox,Firefox Addon,使用Firefox,在使用Firefox扩展时,我不断收到一条javascript警告: reference to undefined property mySidebar.context.netProgress 我尝试了多种方法来测试该值: if (mySidebar.context.netProgress === undefined) { 及 及 及 但是Firefox中的错误控制台每次都会在同一行上给我警告,这一行就是我在上面发布代码的那一行。该值的实际检查导致警告 我还发出了一个警报

使用Firefox,在使用Firefox扩展时,我不断收到一条javascript警告:

reference to undefined property mySidebar.context.netProgress
我尝试了多种方法来测试该值:

if (mySidebar.context.netProgress === undefined) {

但是Firefox中的错误控制台每次都会在同一行上给我警告,这一行就是我在上面发布代码的那一行。该值的实际检查导致警告

我还发出了一个警报来检查mySidebar.context的值,它始终是一个对象,因此我得到的警告不是来自父对象

有什么想法吗?

试试这个对象


正如Swingley所说,您可以使用检查对象上是否存在直接属性。但是,这对从原型链继承的属性不起作用。对于继承和直接两种情况,您都可以使用:


+我希望你不介意我在你的帖子中添加一个例子。请注意,这对通过原型链继承的属性不起作用。请注意,
hasOwnProperty
检查属性是否存在,该属性可能存在,其值可能是未定义的,另请参见:感谢CMS,这很好,因为在我尝试添加属性之前,我使用它来检查属性是否存在。当我删除属性时,我会使用delete,这样它对我来说会很好。你也可以在浏览器启动时将它设置为
null
。它不是太长了吗?使用if(mySidebar.context.netProgress)越来越方便…
if (typeof mySidebar.context.netProgress == "undefined") {
if (!mySidebar.context.netProgress) {
if (mySidebar.context.netProgress == undefined) {
if (mySidebar.context.hasOwnProperty("netProgress")) {
if ("netProgress" in mySidebar.context) {