js 把字符串当函数执行的方法

作者: 阳光很耀眼 | 来源:发表于2017-09-18 20:36 被阅读0次

在某些情况下,传递函数名之后,接收的不是函数而是函数名的字符串类型;

解决方法:

1. eval
eval方法—用来执行字符串代表的 javascript 代码。
如果传递的不是字符串的话,会直接返回传值,而非调用。

例如:

function test(str){ 
alert(str); 
} 
//如果param是值;
eval('test("param")'); 
//如果param是变量;
var param = 'B';
eval('test(param)'); //会查找名为param的变量,如果找不到会抛出异常

2. 把方法名看成属性名就行了
由于eval 效率低下以及不安全性,正常情况下我们并不会直接使用这种方法来调用一个函数。由于函数在javascript 里面可以被保存在对象中,因此通过对象的属性访问将会是更好的选择。

说明:

  1. 全局函数声明会变成全局对象的属性。
    全局对象是在进入执行上下文前创建的一个唯一的对象。
    在浏览器运行环境中,全局对象就是window对象。
  2. 属性访问可以使用 点标记法 或者 括号标记法 ,其中,使用点访问时需要使用标识符,而使用括号访问时使用的是标识符对应的字符串。

例如:

function test(str) { 
    alert(str); 
} 
window['test']('param'); //直接执行

window['test'].call(this,'param');//如果需要修改函数运行时的this

如果函数是其他对象的属性,也是同理调用。

相关文章

  • js 把字符串当函数执行的方法

    在某些情况下,传递函数名之后,接收的不是函数而是函数名的字符串类型; 解决方法: 1. evaleval方法—用来...

  • WKWebView执行Post请求

    方法一:使用js的form表单发送post请求首先定义js函数的字符串宏 执行使用 方法二:1.使用原生或AFNe...

  • JavaScript函数_06 eval | with

    eval 函数 作用:把字符串转换为js的代码new Function("字符串"); //把字符串转换为js...

  • jQuery常用方法

    $(document).ready() DOM加载完毕后,指定一个函数来执行,使用方法 可以把js放在下面的函数里...

  • 前端开发入门到实战:JavaScript字符串转换数字

    js 字符串转换数字方法主要有三种: 转换函数、强制类型转换、利用js变量弱类型转换。 1. 转换函数: js提供...

  • 前端开发入门到实战:JavaScript字符串转换数字

    js 字符串转换数字方法主要有三种: 转换函数、强制类型转换、利用js变量弱类型转换。 1. 转换函数: js提供...

  • 2021-03-18

    js 解析:fn(10):当执行到自执行函数时,直接返回一个函数,自定义函数的this指的是全局window,所以...

  • JavaScript 字符串

    js字符串,js字符串的概述和声明,js字符串的特性,js字符串的常用方法,js字符串的拓展方法,js字符串的案例...

  • JS与ES6字符串相关方法的区别

    JS与ES6字符串相关方法的区别 js字符串相关方法 toLowerCase(): 把字符串转为小写,返回新的字符...

  • js中parseInt()与parseFloat(),Numb

    js将字符串转数值的方法主要有三种 转换函数、强制类型转换、利用js变量弱类型转换。 1. 转换函数: js提供了...

网友评论

    本文标题:js 把字符串当函数执行的方法

    本文链接:https://www.haomeiwen.com/subject/rfxisxtx.html