JavaScript:尝试使用一个类';由于某种原因而无法使用的函数';跑不动 类菜单{ 构造函数(id,listButtons,title=null,visible=false){ this.id=id; this.listBtn=listButtons; this.title=标题; 可见的;可见的; this.SetVisible(this.visible); } 设置可见(可见性){ 警报(“SetVisible:+visibility+”“+this.id) 如果(能见度){ 对于(var i=0;i
这是我的类和函数 函数JavaScript:尝试使用一个类';由于某种原因而无法使用的函数';跑不动 类菜单{ 构造函数(id,listButtons,title=null,visible=false){ this.id=id; this.listBtn=listButtons; this.title=标题; 可见的;可见的; this.SetVisible(this.visible); } 设置可见(可见性){ 警报(“SetVisible:+visibility+”“+this.id) 如果(能见度){ 对于(var i=0;i,javascript,arrays,function,class,ecmascript-6,Javascript,Arrays,Function,Class,Ecmascript 6,这是我的类和函数 函数
运行,我可以从警报中看到,但由于某种原因,我在类菜单中的函数没有显示警报,我不知道原因是什么
如果我将SetVisible
的输入改为“true”而不是变量,它仍然不起作用,因此变量不存在问题您需要首先创建类的实例:
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);
}
您是否创建了菜单类对象,以便使用new关键字访问菜单方法。就像这个const main Menu=new Menu()。代码底部的main Menu
和aboutMenu
实例来自哪里?
let mainMenu = new Menu("Main", ["List button 1", "List button 2"]);
let aboutMenu = new Menu("About", ["Home", "Back"]);