我想在另一个函数中动态地运行一个函数...
假设:
<script>
var x = function(r,s){
r(s);
}
var a = function(item){
alert("aA");
}
var b = function(item){
alert("bB");
}
</script>
这可能吗? 我从函数 x 的参数中获取“r”作为函数名,我想运行它。
if r=a, then it will trigger function a()
and if r=b, function b triggered instead...
我该怎么做?
最佳答案
您可以简单地测试 r
并根据需要调用每个函数。
if (r === 'a') {
a(s);
} else if (r === 'b') {
b(s);
}
或者,如果您对此有很多功能,或者并不总是提前了解所有功能,您可以将它们组织在一个Object
中并使用bracket operators。将 r
视为访问它们的键名:
var commands = {
a: function(item){
alert("aA");
},
b: function(item){
alert("bB");
}
};
var x = function (r, s) {
var command = commands[r];
if (typeof command === 'function') {
command(s);
}
};
x('a', 'foo'); // alerts `aA`
或者,甚至只是将 a
和 b
作为参数本身传递给您当前定义的 x()
。
x(a, 'foo'); // calls `a` as `r`, passing 'foo' along
关于javascript - 如何通过函数的参数在 javascript 函数中触发 javascript 函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18627813/