向使用javascript中的new function关键字创建的函数传递参数
Passing arguments to a function which is created using the new function keyword in javascript
我正在使用new Function()
将字符串转换为函数表达式。
它工作正常,但我需要将参数传递给函数。如何做到这一点?
我正在读取JSON文件中的字符串。
var act = new Function("Hosting.Click()");
act();
假设真的没有更好的方法来做到这一点。
您需要解析包含代码的字符串,并替换其中的参数。
例如,如果模式始终是一个方法调用,则可以将其拆分在括号上,并在括号内联接参数。然而,如果它总是一个函数调用,那么最好将部分拆分并直接调用函数(这将使您有机会确保字符串符合您的期望)。
试试这个-
使用arg1
创建新函数,然后通过传递此参数调用Hosting.Click()
var Hosting={Click:function(){
alert(JSON.stringify(arguments));
}}
var act = new Function("arg1","Hosting.Click(arg1)");
act("Value for argument 1");
更新:-
对于任何争论-
var act2 = new Function("Hosting.Click.apply(window,arguments)");
act2("any no of arguments",1,2,3,4,5,"Hi");
演示
相关文章:
- 如何在HTML元素上创建函数,而不是将元素作为参数传递
- Javascript创建函数,以便在其他函数之间共享变量
- 调用函数和创建函数实例之间的Javascript差异
- setTimeout是否创建函数实例
- 使用 eval 从字符串创建函数的不同方法
- 如何在jquery中创建函数和parent.function
- 在for循环中创建函数
- 如何使用php代码创建函数Javascript弹出框
- 如何避免在循环中创建函数
- 在Javascript的函数原型中创建函数
- 在JS中动态创建函数
- 为什么在Javascript中创建函数有两种不同的方法
- 在循环中创建函数的最有效替代方法
- Javascript循环创建函数并使用收到的基于PHP Query的id附加值
- 如何在 Javascript 命名空间脚本中创建函数数组
- 在 JavaScript 中创建函数的原型
- 在 javascript 中创建函数的不同方式
- 如何创建函数式方法
- Javascript:在 for 循环中创建函数
- 在 JavaScript 中创建函数以启用/禁用基于选择的输入