js将字符串作为函数调用

简介: 开发中,选择不同的业务场景(将近10个),弹出一个公共的对话框,点击对话框的确认按钮,根据不同类型调用不同方法。if else不考虑,类型太多,代码冗余。选择业务弹出对话框的时候,定义一个全局变量,存储不同业务type,业务type的值就是要调用方法的函数名。

使用场景:


开发中,选择不同的业务场景(将近10个),弹出一个公共的对话框,点击对话框的确认按钮,根据不同类型调用不同方法。if else不考虑,类型太多,代码冗余。


解决思路:


选择业务弹出对话框的时候,定义一个全局变量,存储不同业务type,业务type的值就是要调用方法的函数名。


方法1:eval(str)


eval(str) 函数可计算某个字符串,并执行其中的的 JavaScript 代码。注意,eval方法的参数只能是字符串,如果传递的不是字符串的话,会直接返回传值,而非调用。由于eval方法效率低,而且不安全,不建议使用。

function test(str){
    alert(str);
}
var a='test';
var b='345';
eval(a+'('+123+')');
eval(a+'(b)');


方法二:把方法名当成属性名


函数在js里面可以被保存在对象中,因此通过对象的属性访问,调用字符串方法。


全局函数声明会变成全局对象的属性。全局对象在进入执行上下文前创建的一个唯一的对象。在浏览器运行环境里,全局对象就是window对象

属性访问可以使用 点标记法 或者括号标记法。其中使用点访问需要标识符,二括号访问使用的是标识符对应的字符串

function test(str){
    alert(str);
}
var param='哈哈';
window['test'](param);//直接执行
window['test'].call(this,'param');

如果函数是其他对象属性,也可以同样方法调用。

目录
相关文章
|
3月前
|
JavaScript 前端开发
JS几种拼接字符串的方法
JS几种拼接字符串的方法
69 1
|
5月前
|
存储 JavaScript 前端开发
JS上传文件(base64字符串和二进制文件流)
这篇文章介绍了两种JavaScript文件上传的方法:使用FileReader对象将文件读取为base64字符串上传,以及使用FormData对象以二进制文件流的形式上传文件,包括如何处理文件选择、读取和上传的详细代码示例。
590 2
JS上传文件(base64字符串和二进制文件流)
|
4月前
|
JavaScript
js 解析 byte数组 成字符串
js 解析 byte数组 成字符串
103 5
|
6天前
|
JavaScript 前端开发 开发者
JavaScript字符串的常用方法
在JavaScript中,字符串处理是一个非常常见的任务。JavaScript提供了丰富的字符串操作方法,使开发者能够高效地处理和操作字符串。本文将详细介绍JavaScript字符串的常用方法,并提供示例代码以便更好地理解和应用这些方法。
35 13
|
2月前
|
JavaScript 前端开发 数据处理
模板字符串和普通字符串在浏览器和 Node.js 中的性能表现是否一致?
综上所述,模板字符串和普通字符串在浏览器和 Node.js 中的性能表现既有相似之处,也有不同之处。在实际应用中,需要根据具体的场景和性能需求来选择使用哪种字符串处理方式,以达到最佳的性能和开发效率。
|
2月前
|
JavaScript 前端开发 索引
JavaScript学习第二章--字符串
本文介绍了JavaScript中的字符串处理,包括普通字符串和模板字符串的使用方法及常见字符串操作方法如`charAt`、`concat`、`endsWith`等,适合前端学习者参考。作者是一位热爱前端技术的大一学生,专注于分享实用的编程技巧。
35 2
|
3月前
|
存储 JavaScript 前端开发
JavaScript 字符串(String) 对象
JavaScript 字符串(String) 对象
51 3
|
4月前
|
JavaScript 前端开发
javascript创建字符串
javascript创建字符串
|
4月前
|
JavaScript 前端开发
如何在JavaScript中替换字符串:一篇详细指南
如何在JavaScript中替换字符串:一篇详细指南
|
4月前
|
存储 JavaScript
js切割截取字符串方法
js切割截取字符串方法
64 2