当前位置:   article > 正文

javascript里将函数名字符串转为函数并执行_js 将字符串转成函数

js 将字符串转成函数

javascript中,如何将函数名字符串转变为函数并执行?

“用 eval ”,西蒙说。

咋弄呢?类似地:

var mess = "hello world!";
var func = "alert";
var f = eval(func + "(mess);");//hello world!
  • 1
  • 2
  • 3

可以写得复杂点:

var frameRightSub = document.getElementById("frameSlider").contentDocument.getElementById("frame");
var func = "frameRightSub.contentWindow." + funcName;//需要执行的函数在嵌在某个iframe里的页面定义

if (typeof (eval(func)) != "function") return false;//检测是否为函数

var f = eval(func + "(node);");
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

另外,这个eval是把双刃剑,有被利用来进行攻击的危险,所以我们要谨慎使用。


2022.05.12
其实eval有安全隐患。还有另一种方法可以动态执行函数:
1、首先,提供一个json,json的元素是函数:

const funcs = {
	"f1": function(){
	},
	"f2"function(){
	},
	"f3"function(){
	},
};
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8

2、然后按照指定的方法名执行相应函数:

function test(fname){
	funcs[fname]();//在javascript中,json和数组,好像没有严格的界限,有时候它们好像是同一种东西。
}

test('f1');
test('f2');
test('f3');
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

在上面例子中,使用了读取数组元素的方式来使用json元素。js的语法相当灵活,数据类型没有固定的限制,像水一样多变和柔软,水装在瓶子里,就是瓶子的形状;装在茶壶里,又变成了茶壶的形状。你永远都无法斩断水。也许,有一天javascript会改名叫 tjscript。太极脚本。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/凡人多烦事01/article/detail/78683
推荐阅读
相关标签
  

闽ICP备14008679号