使用串联构造函数名
Construct the function name with concatenation
本文关键字:构造函数 更新时间:2023-10-13
我如何制作这样的东西:
var string1 = "functionNameBeginning";
var string2 = "functionNameEnding";
element.innerHTML = string1 + string2 //string1 + string2 is name of function to execute
UPD:我想要的是执行名为string1string2()
的函数,用户Spencer Wieczorek在他关于eval()
函数的评论中完全理解我。此外,我真的找到了一个更好的主意来解决这个问题。由于这是我想在Wordpress网站上处理select input
值的方法:
<select name="formula" class="left-input" id="formula">
<option value="mifflin" selected>Mifflin-St Jeor</option>
<option value="harris">Harris–Benedict</option>
<option value="katch">Katch-McArdle</option>
</select>
我已经在我的WP插件中编写了函数:
if ($_POST['formula'] == 'mifflin') {
return mifflinFormula();
} else if ($_POST['formula'] == 'harris') {
return harrisFormula();
} else {
return katchFormula($_POST['fat']);
}
如果在
global(window)
作用域中声明了function
,则可以使用bracket
表示法将它们作为window
的key
进行访问,就像使用variable
作为key
一样
function functionNameBeginning() {
return 'Hi...';
}
function functionNameEnding() {
return 'Bye...';
}
var string1 = "functionNameBeginning";
var string2 = "functionNameEnding";
var element = document.body;
element.innerHTML = window[string1]() + window[string2]();
编辑:
若您有一个函数名,它是在连接前两个函数返回的值后形成的,您可以这样做。但我建议您使用您自己的对象,将属性值作为函数。
function functionNameBeginning() {
return 'Hi';
}
function functionNameEnding() {
return 'Bye';
}
function HiBye() {
return 'Hi...Bye executed!';
}
var string1 = "functionNameBeginning";
var string2 = "functionNameEnding";
var element = document.body;
element.innerHTML = window[window[string1]() + window[string2]()]();
您是否试图执行任意函数,或者您可以控制其定义方式?
如果它是任意的,你可能会走上一条危险的道路,因为你需要使用eval
来执行它,这总是有风险的。
如果它在你的控制之下,试试这个:
var functions = {
example_a: function() {
},
test_b: function() {
}
};
functions["example" + "_" + "a"]();
相关文章:
- ES6构造函数返回基类的实例
- 使用Google Visualization动态调用构造函数
- javascript中对象构造函数中的var属性与this.properties
- 理解typescript中的构造函数接口
- 为什么构造函数不是构造函数
- 如果在构造函数中有“返回”,则在 JavaScript 中的新运算符中做了什么
- 拦截对构造函数的调用
- 使用闭包共享构造函数参数
- 文本表示法VS.构造函数,用于在JavaScript中创建对象
- 从js引擎的角度来看闭包和构造函数是如何工作的
- 如何使用此从对象访问构造函数
- Javascript:为什么是构造函数's __proto__属性Empty(){}
- 当一个重要的构造函数参数丢失时应该发生什么
- Chrome Javascript日期构造函数错误
- 如何使用构造函数's的输出,以便将值插入到对象中
- 为什么在调用父构造函数时在[]中发送数据
- 构造函数函数闭包变量
- ES6类是否与构造函数相同
- 构造函数中的事件处理程序与构造函数外的事件处理函数的行为不同
- 如果在构造函数内部为else,则Javascript是可选的