您有一个表示函数调用的字符串,例如:
settings.functionName + '(' + t.parentNode.id + ')'
您想要将此字符串转换为实际的函数调用,但不使用 eval。
您可以使用以下代码来代替使用 eval:
var fn = window[settings.functionName]; if(typeof fn === 'function') { fn(t.parentNode.id); }
此代码:
考虑以下设置对象:
/* Somewhere: */ window.settings = { /* [..] Other settings */ functionName: 'clickedOnItem' /* , [..] More settings */ };
在代码的后面,定义了以下函数:
function clickedOnItem (nodeId) { /* Some cool event handling code here */ }
现在,您可以使用解决方案中提供的代码来进行函数调用:
/* Even later */ var fn = window[settings.functionName]; if(typeof fn === 'function') { fn(t.parentNode.id); }
这将导致以 t.parentNode.id 作为参数调用 clickedOnItem 函数。
以上是如何在 JavaScript 中将字符串转换为函数调用而不使用“eval”?的详细内容。更多信息请关注PHP中文网其他相关文章!