javascript引用未定义的属性

时间:2010-09-24 16:54:09

标签: javascript firefox firefox-addon

使用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的值,该值始终是一个对象,因此我不会从父级获取警告。

有什么想法吗?

2 个答案:

答案 0 :(得分:6)

正如Swingley所说,您可以使用Object.prototype.hasOwnProperty()来检查对象上是否存在直接属性。但是,这不适用于从原型链继承的属性。对于继承和直接两种情况,您都可以使用in operator

if ("netProgress" in mySidebar.context) {

答案 1 :(得分:3)

尝试对象。hasOwnProperty()

if (mySidebar.context.hasOwnProperty("netProgress")) {