JavaScript:尝试使用由于某种原因无法运行的类函数

时间:2019-02-08 20:28:42

标签: javascript arrays function class ecmascript-6

class Menu {
  constructor(id, listButtons, title = null, visible = false) {
    this.id = id;
    this.listBtn = listButtons;
    this.title = title;
    this.visible = visible;
    this.SetVisible(this.visible);
  }

  SetVisible(visibility) {
    alert("SetVisible:" + visibility + " " + this.id)
    if (visibility) {
      for (var i = 0; i < this.listBtn.length; i++) {
        this.listBtn[i].style.display = "block";
      }
      this.title.style.display = "block";
      visible = visibility;
    } else {
      for (var i = 0; i < this.listBtn.length; i++) {
        this.listBtn[i].style.display = "none";
      }
      this.title = "none";
      visible = visibility;
    }
  }
}



function ToggleMainAbout() {
  alert("Toggle_Main_About");
  mainMenu.SetVisible(!mainMenu.visible);
  aboutMenu.SetVisible(!aboutMenu.visible);
}

这是我的课程和功能。

功能 ToggleMain 运行并且可以从警报中看到,但是由于某种原因,我在课堂上的功能 SetVisible Menu 不显示警报,我也不知道是什么原因。

如果我将SetVisible的输入更改为'true'而不是变量,则它仍然不起作用,因此这不是变量的问题

2 个答案:

答案 0 :(得分:2)

您需要先创建该类的实例:

let mainMenu = new Menu("Main", ["List button 1", "List button 2"]);
let aboutMenu = new Menu("About", ["Home", "Back"]);

答案 1 :(得分:0)

您是否创建了用于使用new关键字访问Menu方法的Menu类对象。像这样的const mainMenu = new Menu()。