js如何将字符串作为函数名调用函数
js将如何字符串作为函数名调用函数
一、总结
一句话总结:用eval来实现。eval可以执行参数字符串。
二、js将字符串作为函数名调用函数
比如我现在有一个字符串str = "func_abc",func_abc是一个函数名,我现在知道str如何调用str这个字符串表示的函数.
思路:
1、用eval函数,字符串转换为命令行执行都可以通过eval函数。
2、如果函数不多,可以通过if等方式进行判断,执行不同的分支。
代码示例:
function func_abc(){
alert('a');
}
var str = "func_abc";
eval(str+"()");//执行func_abc()函数
将其用到实际项目中:
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>将字符串作为函数名调用函数</title>
</head>
<body>
<span>指标:</span>
<select id="zhibiao">
<option selected="" value="总体">总体</option>
<option value="queryManagementVolume">办理量</option>
<option value="queryTimeConsuming">平均耗时</option>
<option value="queryOvertimePercent">超时占比</option>
</select>
</body>
<script src="../js/jquery.js"></script>
<script>
$(document).on("change",'select#zhibiao',function(){
var fn=$(this).val();
/* fn(); */
eval(fn+"()");
});
function queryManagementVolume(){
console.log("查询办理量");
}
function queryTimeConsuming(){
console.log("查询平均耗时");
}
function queryOvertimePercent(){
console.log("查询超时占比");
}
</script>
</html>
三、随机执行函数实例
var slideArr=new Array(
'slideLeft',
'slideTop',
'slideRight',
'slideBottom',
'slideLeftTop',
'slideTopRight',
'slideRightBottom',
'slideBottomLeft'
); function slideRandom(arr=slideArr,width,height,time) {
var length=slideArr.length;
var index=Math.floor(Math.random()*length);
var functionName=slideArr[index];
//alert(functionName);
eval(functionName+'(width,height,time)');
}
js如何将字符串作为函数名调用函数的更多相关文章
- 066-PHP通过函数名调用函数
<?php function hello(){ //定义函数 echo '<br />Hello!<br />'; } function hellophp(){ //定义 ...
- JS 字符串对象 数组对象 函数对象 函数作用域
一.内置对象 object对象:ECMAScript 中的所有对象都由这个对象继承而来:Object 对象中的所有属性和方法都会出现在其他对象中 ToString() : 返回对象的原始字符串表示.V ...
- js数组,字符串,json互相转换函数有哪些
js数组,字符串,json互相转换函数有哪些 一.总结 一句话总结: JSON.stringify(arr) JSON.parse(jsonString) str.split('') array.jo ...
- Js中常用的字符串,数组,函数扩展
由于最近辞职在家,自己的时间相对多一点.所以就根据prototytpeJS的API,结合自己正在看的司徒大神的<javascript框架设计>,整理了下Js中常用一些字符串,数组,函数扩展 ...
- JS判断一个字符串是否包含一个子串函数.
微信小程序 JS判断一个字符串是否包含一个子串函数. //str 字符串,name子串 contains:function(str,name){ if(str.indexOf( ...
- js课程 3-10 js中字符串函数数组函数和其它语言中对应函数的区别和联系是什么
js课程 3-10 js中字符串函数数组函数和其它语言中对应函数的区别和联系是什么 一.总结 一句话总结:js中是对象点方法的形式,这些方法都是对象的方法,而在php.java中却不是这样. 1.j ...
- js:把字符串转为变量使用; js下将字符串当函数去执行的方法
1 把字符串当变量使用 通过计算 string 得到的值(如果有的话).该方法只接受原始字符串作为参数 demo: var type = "car"; var newStr = & ...
- 《JS权威指南学习总结--8.7 函数属性、方法和构造函数》
内容要点: 在JS程序中,函数是值.对函数执行typeof运算会返回字符串 "function",但是函数是JS中特殊的对象.因为函数也是对象,它们也可以拥有属性和方法,就像普 ...
- js中escape对应的C#解码函数 UrlDecode
js中escape对应的C#解码函数 System.Web.HttpUtility.UrlDecode(s),使用过程中有以下几点需要注意 js中escape对应的C#解码函数 System.We ...
随机推荐
- 【Hello 2018 B】Christmas Spruce
[链接] 我是链接,点我呀:) [题意] 在这里输入题意 [题解] 写个dfs看看是不是每个节点都有3个叶子节点就可以了. [代码] #include <bits/stdc++.h> us ...
- 在Qt Creator的项目中添加头文件和库
在Qt Creator中的工程中,工程通过.pro文件管理. 额外需要连接的连接库unix:LIBS += -L your_lib_path -lyour_libwin32:LIBS += your_ ...
- Ajax用法
1.什么是 Ajax? Ajax,英文名 Asynchronous JavaScript and XML,也就是异步的 JavaScript 和 XML.它不是一门新的语言,而是一种使用现有标准的新方 ...
- 【hdu 6181】Two Paths
[链接]http://acm.hdu.edu.cn/showproblem.php?pid=6181 [题意] 让你求从1到n的次短路 [题解] 模板题; 因为点可以重复走; 则一定会有次短路. di ...
- 51NOD——T 1079 中国剩余定理
http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1079 基准时间限制:1 秒 空间限制:131072 KB 分值: 0 难 ...
- win7打不开chm格式文件
近期在开发的过程中,发现重装的系统Wind7 打不开java帮助文档.搜索了半天才找到. 在这里分享一下. 一.假设不能打开,可这样恢复文件关联: 1.開始执行,输入:regsvr32 ...
- kafka同步生产者和异步生产者深入剖析
什么是kafka同步生产者,什么是kafka异步生产者? 比如这里某个topic有3个分区. kafka同步生产者:这个生产者写一条消息的时候,它就立马发送到某个分区去. kafka异步生产者:这个 ...
- groupbox里面添加Form
/// <summary> /// 动态加载dll /// 反射 /// </summary> private void dynamicDll() { string dllNa ...
- 原生js大总结十一
101.请简述prototype.__proto__ constructor三者的关系 1.prototype: 每一个函数都有一个prototype这个属性,而这个属性指向一个对象,这个 ...
- HDU1969 Pie(二分搜索)
题目大意是要办生日Party,有n个馅饼,有f个朋友.接下来是n个馅饼的半径.然后是分馅饼了, 注意咯自己也要,大家都要一样大,形状没什么要求,但都要是一整块的那种,也就是说不能从两个饼中 各割一小块 ...