js 把字符串当函数执行的方法
2017-09-20 10:20
906 查看
在某些情况下,传递函数名之后,接收的不是函数而是函数名的字符串类型;
eval方法—用来执行字符串代表的 javascript 代码。
如果传递的不是字符串的话,会直接返回传值,而非调用。
例如:
2. 把方法名看成属性名就行了
由于eval 效率低下以及不安全性,正常情况下我们并不会直接使用这种方法来调用一个函数。由于函数在javascript 里面可以被保存在对象中,因此通过对象的属性访问将会是更好的选择。
说明:
全局函数声明会变成全局对象的属性。
全局对象是在进入执行上下文前创建的一个唯一的对象。
在浏览器运行环境中,全局对象就是window对象。
属性访问可以使用 点标记法 或者 括号标记法 ,其中,使用点访问时需要使用标识符,而使用括号访问时使用的是标识符对应的字符串。
例如:
如果函数是其他对象的属性,也是同理调用。
解决方法:
1. evaleval方法—用来执行字符串代表的 javascript 代码。
如果传递的不是字符串的话,会直接返回传值,而非调用。
例如:
function test(str){ alert(str); } //如果param是值; eval('test("param")'); //如果param是变量; var param = 'B'; eval('test(param)'); //会查找名为param的变量,如果找不到会抛出异常
2. 把方法名看成属性名就行了
由于eval 效率低下以及不安全性,正常情况下我们并不会直接使用这种方法来调用一个函数。由于函数在javascript 里面可以被保存在对象中,因此通过对象的属性访问将会是更好的选择。
说明:
全局函数声明会变成全局对象的属性。
全局对象是在进入执行上下文前创建的一个唯一的对象。
在浏览器运行环境中,全局对象就是window对象。
属性访问可以使用 点标记法 或者 括号标记法 ,其中,使用点访问时需要使用标识符,而使用括号访问时使用的是标识符对应的字符串。
例如:
function test(str) { alert(str); } window['test']('param'); //直接执行 window['test'].call(this,'param');//如果需要修改函数运行时的this
如果函数是其他对象的属性,也是同理调用。
相关文章推荐
- js 把字符串当函数执行的方法
- js把字符串当函数执行的方法
- js 把字符串当函数执行的方法
- js如何把字符串转为变量使用,以及js下将字符串当函数去执行的方法
- js把字符串当函数执行的方法
- js 把字符串当函数执行的方法
- js下将字符串当函数执行的方法
- 页面加载完成后自动执行一个方法函数的JQ、JS方法
- js 执行一个字符串类型的函数
- onload js函数不执行的原因分析及解决方法
- JS字符串替换函数全部替换方法 JS 正则表达式如何使用变量
- Iframe外执行所包含的iframe中的JS函数的方法
- js 把字符串当做方法执行
- 在.NET(Java也适用的)环境下,如何执行字符串所代表方法名(函数名)
- onload js函数不执行的原因分析及解决方法
- js中执行脚本字符串方法:window.eval()/eval()
- 在网页中JS函数自动执行常用三种方法
- 在网页中JS函数自动执行常用三种方法
- Js定时执行函数方法setTimeout,clearTimeout用法及按钮addEventListener,attachEvent侦听事件