通过字符串变量中的名称调用Vue 3函数

vybvopom  于 2022-11-17  发布在  Vue.js
关注(0)|答案(3)|浏览(512)

在我的脚本设置SFC中,我想通过字符串变量中的名称动态调用同一组件中的另一个函数,现在我正在这样做:

let functionName = "myFunction(param)";
eval(functionName);

我在MDN文档上读到使用eval是危险的,我尝试使用return函数,但它给我“未捕获的ReferenceError:未定义myFunction”或“类型错误:[...]不是函数”
有更好的方法吗?还是我必须使用eval?

plicqrtu

plicqrtu1#

你在这里所做的就是给变量functionName赋一个字符串。虽然你的帖子缺少一些上下文,但如果你只是试图从一个函数调用另一个函数,它看起来会像这样:

<script setup>

function myFunction(params){};
function myOtherFunction(){
   myFunction()
};

</script>

或者更像你写的那样。这也是有效的语法:

let myFunction = (params) => {};
let myOtherFunction = (params) => {
  myFunction(params);
}
34gzjxbg

34gzjxbg2#

将函数定义为文本对象中的属性,然后使用括号调用它:

const funcs={
  myFunction:function(param){
   ///
  }
}

// and now you could call it like 
funcs["myFunction"](yourArg)
z9smfwbn

z9smfwbn3#

也许是为了更好地解释你所需要的,但是如果你接收到带有参数的函数,比如string:
第一个

相关问题