Reputation: 647
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
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
Reputation: 8752
Try object.hasOwnProperty()
if (mySidebar.context.hasOwnProperty("netProgress")) {
Upvotes: 3