JavaScript 提示我定义的函数

标签 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

最佳答案

在 JavaScript 中,this 不是隐式的。您必须更改这些行:

if(bInstalled) uninstallLocalHost();
else installLocalHost();

致这些:

if(this.bInstalled) this.uninstallLocalHost();
else this.installLocalHost();

...或者,这些:

if(katimbaClass.bInstalled) katimbaClass.uninstallLocalHost();
else katimbaClass.installLocalHost();

关于JavaScript 提示我定义的函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6401106/

相关文章:

javascript - AEM 6.1 复选框启用/禁用标签属性

javascript - 努力弄清楚为什么附加原始 HTML 会产生与使用 jQuery 创建 HTML 不同的结果

javascript - 只运行一次函数

javascript - Cypress :查找元素数量而不抛出错误

javascript - 在后台禁用 TinyMCE 控件

javascript - 多个异步回调 - 使用数组在完成时触发函数

javascript - 表格单元格上的 Angular 鼠标按下/鼠标悬停

javascript - Angular 指令 link() 函数接收不一致的范围

javascript - VueJS 2 Cli 使用 Dev Server 将 POST 请求转换为 GET 请求

javascript - 启用单元格的输入