我是JavaScript的新手,我正在尝试编写一个调用一些成员函数的简单对象。
令人惊讶的是,JavaScript抱怨名为uninstallLocalHost
的函数。
Error: uninstallLocalHost is not defined
Source File: chrome://custombutton/content/button.js
Line: 39
然而,看起来这个函数是定义的。 我能做错什么?
var katimbaClass=
{
installLocalHost:function()
{
alert("localhost installed");
},
uninstallLocalHost:function()
{
alert("localhost uninstalled");
},
toggleInstall:function()
{
if(bInstalled) uninstallLocalHost();
else installLocalHost();
},
bInstalled: false
};
当我尝试在其他地方调用katimbaClass
的函数时:
oncommand="katimbaClass.toggleInstall()"
我不明白为什么会出现以下错误:
Error: uninstallLocalHost is not defined
答案 0 :(得分:3)
在JavaScript中,this
不是隐含的。您必须更改以下行:
if(bInstalled) uninstallLocalHost();
else installLocalHost();
对于这些:
if(this.bInstalled) this.uninstallLocalHost();
else this.installLocalHost();
......或者,这些:
if(katimbaClass.bInstalled) katimbaClass.uninstallLocalHost();
else katimbaClass.installLocalHost();
答案 1 :(得分:2)
这会使它变得更简单吗?
var katimbaClass = new function() {
this.installLocalHost= function () {
alert("localhost installed");
};
this.uninstallLocalHost= function () {
alert("localhost UnInstalled");
};
// ETC ..
}
oncommand="katimbaClass.toggleInstall()"