Purge
Purge

Reputation: 647

javascript reference to undefined property

Using Firefox, working on a Firefox extension, I continually get a javascript warning:

reference to undefined property mySidebar.context.netProgress

I have tried multiple ways of testing the value:

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

And

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

And

if (!mySidebar.context.netProgress) {

And

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

However the error console in Firefox continues to give me the warning on the same line every time, the line in question is the line that I posted the code from above. The actual check for the value is causing the warning.

I also put an alert to check the value of mySidebar.context, which is always an object, so it is not from the parent that I'm getting the warning.

Any ideas?

Upvotes: 5

Views: 2631

Answers (2)

Andy E
Andy E

Reputation: 344497

As Swingley said, you can use Object.prototype.hasOwnProperty() to check for existence of a direct property on an object. This won't work for properties inherited from the prototype chain, however. For both situations, inherited and direct, you can use the in operator:

if ("netProgress" in mySidebar.context) {

Upvotes: 6

Derek Swingley
Derek Swingley

Reputation: 8752

Try object.hasOwnProperty()

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

Upvotes: 3

Related Questions