如何在 JavaScript 中将字符串转换为函数调用而不使用'eval”?
在 JavaScript 中将字符串转换为函数调用
问题
您有一个表示函数调用的字符串,例如:
settings.functionName + '(' + t.parentNode.id + ')'
登录后复制
您想要将此字符串转换为实际的函数调用,但不使用 eval。
解决方案
您可以使用以下代码来代替使用 eval:
var fn = window[settings.functionName]; if(typeof fn === 'function') { fn(t.parentNode.id); }
登录后复制
此代码:
- 通过访问全局窗口对象并使用 settings.functionName 属性作为键来获取对函数的引用。
- 检查是否获得的值是一个函数。
- 如果它是一个函数,则使用所需的参数调用它。
示例
考虑以下设置对象:
/* 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中文网其他相关文章!
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

AI Hentai Generator
免费生成ai无尽的。

热门文章
R.E.P.O.能量晶体解释及其做什么(黄色晶体)
2 周前
By 尊渡假赌尊渡假赌尊渡假赌
仓库:如何复兴队友
4 周前
By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island冒险:如何获得巨型种子
3 周前
By 尊渡假赌尊渡假赌尊渡假赌
击败分裂小说需要多长时间?
3 周前
By DDD
R.E.P.O.保存文件位置:在哪里以及如何保护它?
3 周前
By DDD

热工具

记事本++7.3.1
好用且免费的代码编辑器

SublimeText3汉化版
中文版,非常好用

禅工作室 13.0.1
功能强大的PHP集成开发环境

Dreamweaver CS6
视觉化网页开发工具

SublimeText3 Mac版
神级代码编辑软件(SublimeText3)