【发布时间】:2019-12-25 16:02:58
【问题描述】:
我正在开发一个需要最多十个输入框的基本 P5 程序。
所以我需要首先创建按钮实例,例如使用
factor1Input = createInput(""); // create DOM element for input field
factor1Input.position(leftMargin, topMargin + 50); // place button on screen
factor1Input.changed(this.factor1update); // call function when value changes
factor1Button = createButton('Update Factor'); // create DOM element for button
factor1Button.position(100, 100); // position button
然后使用例如切换它们的可见性
factor1Input.show(); // toggle display on
factor1Button.show();
factor1Input.hide(); // or toggle it off
factor1Button.hide();
但是因为我最多有 10 个,所以这将需要大量重复的代码。
所以我想创建一个类似的循环(例如,仅用于 show 函数);
for (let i = 1; i < factorCount; i++){
let fci = "factor" + i + "Input";
let fcb = "factor" + i + "Button";
fci.show();
fcb.show();
}
但我收到以下错误:
Uncaught TypeError: fci.show is not a function
这表明某种类型的不匹配,即我似乎不能只编译一个字符串,并将其识别为 JavaScript 函数。
有什么建议吗?
【问题讨论】:
-
这被称为“投影”,应该不惜一切代价避免。您应该改为使用类,创建实例并将对它们的引用保存在数组中。这些因素是什么?是什么切换了可见性?
标签: javascript function loops p5.js