使用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的值,该值始终是一个对象,因此我不会从父级获取警告。
有什么想法吗?
答案 0 :(得分:6)
正如Swingley所说,您可以使用Object.prototype.hasOwnProperty()来检查对象上是否存在直接属性。但是,这不适用于从原型链继承的属性。对于继承和直接两种情况,您都可以使用in operator:
if ("netProgress" in mySidebar.context) {
答案 1 :(得分:3)
尝试对象。hasOwnProperty()
if (mySidebar.context.hasOwnProperty("netProgress")) {