首页 > 设计 > WEB开发 > 正文

JS 实现反射功能

2019-11-02 18:49:07
字体:
来源:转载
供稿:网友

在js中假定我有一个函数字符串是 var str = "refresh()" 有一个对应的函数是:

function refresh(){}

如何做到 从str映射调用 refresh呢? 可能有很多人第一想法直接用个object保存一下映射即可,但是有些场景下是不可行的,因为用Object保存的场景只有在你很明确知道 refresh函数存在的情况. 但是在你疯狂一个插件或者库的场景时,这个 refresh 是有使用者决定他的名字的,你的插件是完全不知道这个使用者定义的名字,所以使用object保存的方式就不实用!所以用js如何实现反射呢?关键就是 eval 这个函数,具体使用方式可以在w3c中找到. 我这里对于这种反射场景的使用事例如下

eval(funcName + "()")

如果你的 funcName实际值是 refresh 那么该代码最后就会调用 refresh()函数


发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表