javascript中的语法错误:缺少;声明前
我正在写一个小mozilla插件,我在两个类中遇到了相同的问题javascript中的语法错误:缺少;声明前,javascript,firefox-addon,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.mess
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
和冒号,但是错误转移到了按钮定义
有人能帮我吗?您的声明语法在这里混淆了。在代码的一部分中使用函数声明,在另一部分中使用对象声明 函数声明涉及运行一段代码并返回单个值,而对象声明不运行代码,而是返回(隐式)一系列键值对(
key:value
,由分隔,
)
您的MateButton=function(mate)
行说明MateButton
是一个函数,因此key:value
对不合适。试试这个:
var MateButton=函数(mate){
var self=这个;
self.myMate=mate;
self.button=ActionButton({
id:“我的按钮”,
标签:self.myMate.message\u OFF,
图标:{
“16”:self.myMate.icon_关闭,
}
});
self.onChange=函数(){
var mate=self.myMate;
var icon_tmp=((mate.online==true)?mate.icon_开:mate.icon_关);
var message_tmp=((mate.online==true)?mate.message_打开:mate.message_关闭);
self.button.state(“窗口”{
“标签”:信息\u tmp,
“图标”:{
“16”:图标\u tmp,
}
});
};
回归自我;
};代码>您的声明语法在这里混淆了。在代码的一部分中使用函数声明,在另一部分中使用对象声明
函数声明涉及运行一段代码并返回单个值,而对象声明不运行代码,而是返回(隐式)一系列键值对(key:value
,由分隔,
)
您的MateButton=function(mate)
行说明MateButton
是一个函数,因此key:value
对不合适。试试这个:
var MateButton=函数(mate){
var self=这个;
self.myMate=mate;
self.button=ActionButton({
id:“我的按钮”,
标签:self.myMate.message\u OFF,
图标:{
“16”:self.myMate.icon_关闭,
}
});
self.onChange=函数(){
var mate=self.myMate;
var icon_tmp=((mate.online==true)?mate.icon_开:mate.icon_关);
var message_tmp=((mate.online==true)?mate.message_打开:mate.message_关闭);
self.button.state(“窗口”{
“标签”:信息\u tmp,
“图标”:{
“16”:图标\u tmp,
}
});
};
回归自我;
};代码>删除,
此处“16”:图标,
myMate:mate代码>是的,谢谢你,我把“this.myMate=mate;”改为“myMate:mate;”,忘了改“;”。但它在0之前就已经犯了这些错误。这一切都是混乱的。你一半使用函数声明,一半使用对象声明。是的,对。这是因为我需要一些对象和一个方法代码>是的,谢谢你,我把“this.myMate=mate;”改为“myMate:mate;”,忘了改“;”。但它在0之前就已经犯了这些错误。这一切都是混乱的。你一半使用函数声明,一半使用对象声明。是的,对。这是因为我需要一些对象和一个方法。