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

“用 eval ”,西蒙说。

咋弄呢?类似地:

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

可以写得复杂点:

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);");

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


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

const funcs = {"f1": function(){},"f2"function(){},"f3"function(){},
};

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

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

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

javascript里将函数名字符串转为函数并执行相关推荐

  1. 函数调用通过函数名字符串调用函数【C语言版】

    在写这篇文章之前,xxx已经写过了几篇关于改函数调用主题的文章,想要了解的朋友可以去翻一下之前的文章 问题引入 在C中,函数先定义,后使用.举个简单的例子 /********************* ...

  2. 通过函数名字符串调用函数【C语言版】

    问题引入 在C中,函数先定义,后使用.举个简单的例子 /************************ * add by oscar999 ************************/ fun ...

  3. c语言 怎么将字符串代入函数,通过函数名字符串调用函数【C语言版】

    问题引入 在C中,函数先定义,后使用.举个简单的例子 /************************ * add by oscar999 ************************/ fun ...

  4. 199 c 通过函数名字符串调用函数

    通过函数名字符串调用函数 今天写c的作业时候想起来能不能用函数名字符串来调用函数 一.函数指针 第一个问题,函数名如何保存,我们需要用到函数指针 声明 type (*func)(type &, ...

  5. JS根据函数名字符串调用函数

    转自百度知道:https://zhidao.baidu.com/question/1733819401878068867.html <script type="text/javascr ...

  6. python 字符串转函数名_Python 使用函数名(字符串)调用函数(4种方法)

    先看一个例子: >>> def foo(): print("foo") >>> def bar(): print("bar" ...

  7. 真-C++通过函数名字符串调用函数

    当web客户端向服务器发起API调用时,服务端通常需要根据url参数调用对应的API函数. 为了正确调用字符串对应的函数,可能会存在以下写法. void fun1() {std::cout <& ...

  8. C#通过函数名字符串执行相应的函数

    如果代码中函数过多,那么通过函数名字符串执行相应的函数会更加方便,也会使代码更为简单. 在C#中,通过函数名字符串执行相应的函数这项功能是在System. Reflection命名空间中实现的,使用的 ...

  9. 0717Python总结-return返回值,全局及局部变量,函数名的使用,函数的嵌套,nonlocal修改局部变量,及locals和globals

    一.return 返回值 自定义函数的返回值,return 可以把值返回到函数的调用处 (1) return + 六大标准数据类型 , 还有类和对象,函数 如果不定义return , 默认返回的是No ...

最新文章

  1. 特别浅的渐变蓝色在html里,javascript – 渐变色淡淡的3种颜色
  2. python爬虫文字全是乱码_pythone爬虫编码自适应 解决网页乱码
  3. 用于数据分析的Python – Pandas
  4. 我更爱荷叶freeeim
  5. 5 WM配置-主数据-定义存储类型(Storage Type)
  6. Spring源码学习笔记:经典设计模式之装饰者模式
  7. Java编写五线谱上的音符_新手读懂五线谱
  8. pandas按照多列排序-ascending
  9. 人人都是创业者:视屏和企业合并连接怎么制作
  10. 现场直击大数据行业应用实践
  11. 传统呼叫中心与云呼叫中心哪个好
  12. 8*8点阵引脚图 行列定义
  13. Android手机调用系统相机拍照、裁剪以及获取Url上传图片
  14. python及格率公式_用Python编写成绩管理分析系统(故事升级版)
  15. 基于更深卷积网络的大规模图像识别
  16. Openlayers中加载GeoJson文件显示地图
  17. 威布尔分析在产品失效模式评估中的应用举例
  18. ps之制作电影海报灵感网站
  19. mysql计算字段文本区分度
  20. 下载和安装MySQL官方提供的示例数据库(Employees)

热门文章

  1. python练习15:利用条件运算符的嵌套来完成此题:学习成绩>=90分的同学用A表示,60-89分之间的用B表示,60分以下的用C表示。
  2. Java图形编程实验总结_JAVA实验报告简单绘图程序
  3. Python 使用numpy报错:runtimeError: package fails to pass a sanity check解决方法
  4. 手风琴几排簧好_手风琴三排簧和四排簧的区别
  5. html中测试心理测试的代码,趣味心理测试源码、心理测试_心理测评微信小程序版...
  6. git提交代码设置某些文件不可上传
  7. Dicky - 开源中国社区
  8. 高精度阶乘和 高精度算法(c语言)
  9. Day12:股海浮沉-锦囊妙计
  10. 单目视觉技术、双目视觉技术、多目视觉技术