javascript - JavaScript 中的语法错误 : missing ; before statement

标签 javascript firefox-addon

我正在编写一个小的 mozilla 插件,并且我在两个类上遇到了相同的问题。

var { ActionButton } = require('sdk/ui/button/action');

var MateButton = function(mate)
{
    var self = this;
    myMate: mate,
    button: ActionButton(
    {
        id: "my-button",
        label: self.myMate.message_OFF,
        icon:
        {
            "16": self.myMate.icon_OFF,
        }
    }),
    onChange: function()
    {
        var mate = self.myMate;
        var icon_tmp = ((mate.online == true) ? mate.icon_ON : mate.icon_OFF);
        var message_tmp = ((mate.online == true) ? mate.message_ON : mate.message_OFF);

        self.button.state("window",
        {
            "label": message_tmp,
            "icon":
             {
                "16": icon_tmp,
            }
        });
    }
};

exports.MateButton = MateButton;

问题:

控制台在“onChange: function()”之前发现错误: SyntaxError:missing ;声明之前。

我尝试用“;”替换“,”但错误变成“函数语句需要名称”。

我之前也尝试过删除函数 onChange 和冒号,但错误转移到了按钮定义。

有人可以帮助我吗?

最佳答案

您的声明语法在这里混淆了。在代码的一部分中,您使用函数声明,在另一部分中,您使用对象声明。

函数声明涉及运行一段代码并返回单个值,而对象声明不运行代码,而是返回(隐式)一系列键值对,(键:值,由分隔)。

您的 MateButton = function(mate) 行表明 MateButton 是一个函数,因此 key: value 对不合适。试试这个:

var MateButton = function(mate) {
  var self = this;
  self.myMate = mate;
  self.button = ActionButton({
    id: "my-button",
    label: self.myMate.message_OFF,
    icon: {
      "16": self.myMate.icon_OFF,
    }
  });
  self.onChange = function() {
    var mate = self.myMate;
    var icon_tmp = ((mate.online == true) ? mate.icon_ON : mate.icon_OFF);
    var message_tmp = ((mate.online == true) ? mate.message_ON : mate.message_OFF);

    self.button.state("window", {
      "label": message_tmp,
      "icon": {
        "16": icon_tmp,
      }
    });
  };
  return self;
};

关于javascript - JavaScript 中的语法错误 : missing ; before statement,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34575548/

相关文章:

javascript - 在滚动条上显示 float 导航栏

javascript - 为什么我在提交 FireFox 附加组件时会收到此警告?

javascript - 是否可以为 firefox 创建一个插件,在网页上生成一个或多个点击事件?

Javascript Sinus 不正确

javascript - 停止传播不工作 Jquery

javascript - ResponsiveVoice.js - 绕过 iOS TTS 需要直接用户交互

javascript - 在 Firefox 中本地存储 XML 文件

javascript - 为按钮添加点击噪音

javascript - firefox 扩展加载 javascript 文件

javascript - 您如何将一个 min JS 文件添加到 Wordpress 中,然后调用我的主题上的脚本标签?