JS 实现反射功能
2017-02-07 13:46
211 查看
在js中假定我有一个函数字符串是
有一个对应的函数是:
如何做到 从str映射调用 refresh呢?
可能有很多人第一想法直接用个object保存一下映射即可,但是有些场景下是不可行的,因为用Object保存的场景只有在你很明确知道 refresh函数存在的情况.
但是在你疯狂一个插件或者库的场景时,这个 refresh 是有使用者决定他的名字的,你的插件是完全不知道这个使用者定义的名字,所以使用object保存的方式就不实用!所以用js如何实现反射呢?关键就是 eval 这个函数,具体使用方式可以在w3c中找到.
我这里对于这种反射场景的使用事例如下
如果你的 funcName实际值是 refresh 那么该代码最后就会调用 refresh()函数
var str = "refresh()"
有一个对应的函数是:
function refresh(){ }
如何做到 从str映射调用 refresh呢?
可能有很多人第一想法直接用个object保存一下映射即可,但是有些场景下是不可行的,因为用Object保存的场景只有在你很明确知道 refresh函数存在的情况.
但是在你疯狂一个插件或者库的场景时,这个 refresh 是有使用者决定他的名字的,你的插件是完全不知道这个使用者定义的名字,所以使用object保存的方式就不实用!所以用js如何实现反射呢?关键就是 eval 这个函数,具体使用方式可以在w3c中找到.
我这里对于这种反射场景的使用事例如下
eval(funcName + "()")
如果你的 funcName实际值是 refresh 那么该代码最后就会调用 refresh()函数
相关文章推荐
- C#动态执行类库中的函数:利用反射实现(js)Eval,asp(Execute)功能
- C#利用反射实现(js)Eval,asp(Execute)功能 动态执行类库中的函数
- JS 页面内容搜索,类似于 Ctrl+F功能的实现代码
- js实现表内搜索文本功能
- Js中实现拼音和UrlEncode的功能(利用GB和Unicode对照表)
- js 实现全选或全不选的功能
- 一个较简单的js实现checkbox的全选与全不选功能
- JS+DOM+XML实现分页功能
- 自己编写的一个Json工具类,实现了反射将整个Object转换为Json对象的功能,支持Hibernate的延迟加载对象[修订081217]
- JS 页面内容搜索,类似于 Ctrl+F功能的实现代码
- JS中简单的实现像C#中using功能(有源码下载)
- 实现页面元素拖放功能的JS
- [导入]JsWiki实现了缓存功能
- JS实现回车键的tab功能
- 用js实现键盘方向键翻页功能的代码
- js实现表内搜索文本功能
- JS实现复制/粘贴功能
- vb.net下利用反射实现字符串调用窗体的功能
- 用一段js程序来实现动画功能
- JS实现sleep功能 JS遍历document对象