您的位置:首页 > Web前端 > JavaScript

JS 实现反射功能

2017-02-07 13:46 211 查看
在js中假定我有一个函数字符串是

var str = "refresh()"


有一个对应的函数是:

function refresh(){
}


如何做到 从str映射调用 refresh呢?

可能有很多人第一想法直接用个object保存一下映射即可,但是有些场景下是不可行的,因为用Object保存的场景只有在你很明确知道 refresh函数存在的情况.

但是在你疯狂一个插件或者库的场景时,这个 refresh 是有使用者决定他的名字的,你的插件是完全不知道这个使用者定义的名字,所以使用object保存的方式就不实用!所以用js如何实现反射呢?关键就是 eval 这个函数,具体使用方式可以在w3c中找到.

我这里对于这种反射场景的使用事例如下

eval(funcName + "()")


如果你的 funcName实际值是 refresh 那么该代码最后就会调用 refresh()函数
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  javascipt 反射