JavaScript抱怨我定义的函数

时间:2011-06-19 07:11:22

标签: javascript

我是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

2 个答案:

答案 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()"