js函数名是字符拼接出来的,怎么调用该函数
时间: 2024-10-06 14:01:20 浏览: 22
javascript实现根据函数名称字符串动态执行函数的方法示例
在JavaScript中,如果你有一个函数名是由字符串拼接组成的动态值,你可以使用`eval()`函数或者字面量语法来调用它。但是,通常不推荐使用`eval()`,因为它存在安全风险,可能会导致代码注入问题。
**使用eval()(不推荐):**
```javascript
var functionName = "myFunction";
eval(functionName)(); // 如果myFunction是一个存在的函数
```
**使用字面量语法:**
```javascript
var parts = ["my", "function"];
parts.forEach(part => {
if (typeof window[part] === 'function') { // 检查部分是否构成合法函数名
const combinedFunction = window[part];
combinedFunction(); // 调用函数
}
});
```
**相关问题--:**
1. `eval()`为什么被认为不安全?
2. 字面量语法如何避免`eval()`的风险?
3. 这种方法在哪些情况下会失败或不可行?
阅读全文