对未定义属性的 javascript 引用

标签 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 的值,它始终是一个对象,因此我收到的警告不是来自父项。

有什么想法吗?

最佳答案

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

if ("netProgress" in mySidebar.context) {

关于对未定义属性的 javascript 引用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3789277/

相关文章:

html - :before && :after pseudo elements not showing Firefox

javascript - MDN 文档 : "How to convert an overlay extension to restartless" 中关于弄清楚 XUL 元素的段落意味着什么

javascript - 警报或记录点击功能内容

javascript - 使用 !用于正则表达式编号验证

javascript - 按钮在后续选项卡上无法在 Highcharts 中重绘图表

javascript - Components.utils.unload() 是否也卸载辅助导入?

jquery - 从 Firefox 扩展调用 jQuery AJAX 不起作用

javascript - js 和 jquery 中的sibling()

firefox - 如何在Debian服务器上运行Firefox

javascript - Chrome 中的轻微 CSS 对齐问题