我在JavaScript中将函数的名称作为字符串.如何将其转换为函数指针,以便稍后调用?
根据具体情况,我可能还需要将各种参数传递给方法.
一些功能可能采取的形式namespace.namespace.function(args[...]).
当其名称在变量中时,我在调用另一个函数内部的函数时遇到困难:
var obj = {}
obj.f = function() {
var inner = {
a: function() {
function b() {
alert('got it!');
}
b(); // WORKS AS EXPECTED
x = 'b';
[x](); // DOESN'T WORK, NEITHER this[x]() window[x](), etc.
}
}
inner.a();
}
obj.f();
Run Code Online (Sandbox Code Playgroud)
我尝试[x]()使用不同的范围路径作为前缀,但到目前为止还没有成功.搜索现有答案并未发现任何问题.它适用于this[x]()if b()直接放在对象内部.我想保留b()作为函数内部function a()因为变量范围function a(),否则我需要传递许多参数b().
////重复问题:Quentin在这个帖子imo中提供了一个更优雅的答案.
可能重复:
调用变量中指定的JavaScript函数
我想使用变量的值作为启动函数的调用,但我不确定它是否可能?
说我有:
function myFunction(){
// Do something
}
var functionName = "myFunction";
functionName(); // This should run the function named myFunction
Run Code Online (Sandbox Code Playgroud)
这是可以做到的吗?
我有一个清除用户文本的函数,但是clearText函数位于函数和变量内部。
我在Internet上找到了一些信息,但是一些解决方案只是解决变量中的功能而没有两个功能。
谁能告诉我如何调用函数和变量中的函数?
而且我对语法感到抱歉,英语不是我的母语。我很难使用Google翻译进行翻译。
我在变量中调用了一个名为JavaScript的函数,但没有定义。
<script>
var testing = (function(){
function clearText(){
/* call other function in this testing function */
}
/* other function */
})();
function resetInput() {
/* I call clearText() function here */
}
</script>
Run Code Online (Sandbox Code Playgroud)