向使用javascript中的new function关键字创建的函数传递参数

Passing arguments to a function which is created using the new function keyword in javascript

本文关键字:创建 函数 参数 关键字 function javascript 中的 new      更新时间:2023-09-26

我正在使用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");

演示