在我的脚本设置SFC中,我想通过字符串变量中的名称动态调用同一组件中的另一个函数,现在我正在这样做:
let functionName = "myFunction(param)"; eval(functionName);
我在MDN文档上读到使用eval是危险的,我尝试使用return函数,但它给我“未捕获的ReferenceError:未定义myFunction”或“类型错误:[...]不是函数”有更好的方法吗?还是我必须使用eval?
plicqrtu1#
你在这里所做的就是给变量functionName赋一个字符串。虽然你的帖子缺少一些上下文,但如果你只是试图从一个函数调用另一个函数,它看起来会像这样:
functionName
<script setup> function myFunction(params){}; function myOtherFunction(){ myFunction() }; </script>
或者更像你写的那样。这也是有效的语法:
let myFunction = (params) => {}; let myOtherFunction = (params) => { myFunction(params); }
34gzjxbg2#
将函数定义为文本对象中的属性,然后使用括号调用它:
const funcs={ myFunction:function(param){ /// } } // and now you could call it like funcs["myFunction"](yourArg)
z9smfwbn3#
也许是为了更好地解释你所需要的,但是如果你接收到带有参数的函数,比如string:第一个
3条答案
按热度按时间plicqrtu1#
你在这里所做的就是给变量
functionName
赋一个字符串。虽然你的帖子缺少一些上下文,但如果你只是试图从一个函数调用另一个函数,它看起来会像这样:或者更像你写的那样。这也是有效的语法:
34gzjxbg2#
将函数定义为文本对象中的属性,然后使用括号调用它:
z9smfwbn3#
也许是为了更好地解释你所需要的,但是如果你接收到带有参数的函数,比如string:
第一个