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>



三、隨機執行函數實例

 1 var slideArr=new Array(
 2     'slideLeft',
 3     'slideTop',
 4     'slideRight',
 5     'slideBottom',
 6     'slideLeftTop',
 7     'slideTopRight',
 8     'slideRightBottom',
 9     'slideBottomLeft'
10 );
11 
12 function slideRandom(arr=slideArr,width,height,time) {
13     var length=slideArr.length;
14     var index=Math.floor(Math.random()*length);
15     var functionName=slideArr[index];
16     //alert(functionName);
17     eval(functionName+'(width,height,time)');
18 }

 

 

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM