如何使用参数调用java脚本函数,其中参数来自字符串变量

How to call java-script function with parameters where comes from a string variable

本文关键字:参数 字符串 变量 函数 调用 何使用 java 脚本      更新时间:2023-09-26

My javascript有12个以上的函数,所有函数都调用以下函数。

address_bar(gender, age_min, age_max, religion, country, address, zip-code, telephone);

我的问题是,是否可以按如下方式调用此函数。

var string =  'gender, age_min, age_max, religion, country, address, zip-code, telephone';

将每个函数调用为

address_bar(string); //not working

我得到参数的未定义变量错误。

另一种方法是将它们放在类似的数组中

var args =  [gender, age_min, age_max, religion, country, address, zip-code, telephone];
address_bar.apply(null,args)

您可以通过逗号将字符串拆分为一个数组,然后通过apply将结果参数传递到函数中,但需要注意的是:所有参数都是字符串,因此如果您需要区分数字和字符串,则需要另一步根据您期望的类型循环并解析结果。您还必须小心确保预期值中没有逗号,否则会过早地拆分结果。

下面是一个最基本的例子:

address_bar.apply(null, string.split(','));

如果不修改函数,就不能将它们作为一个字符串传递,至少有3个选项。

1) 更改您的函数以接受一个字符串:

function adress_bar(string){
    //split string and do soemthign with data;
}
adress_bar(string);

2) 更改/拆分您试图"推送"到以下功能中的数据:

var gender = 'gender', age_min = "age_min", ... , telephone = "telephone";

然后用这些变量中的每一个运行函数:

adress_bar(gender, age_min, ... , telephone);

3) 将参数组成数组或对象,并将它们作为一个整体传递。

var array = ["gender", "age_min", "age_max", "religion", "country", "address", "zip-code", "telephone"];
function address_bar(some_array){
//do something with some_array
}
address_bar(array);

这正是您想要的:

var x = [ 'gender', 'age_min', 'age_max', 'religion', 'country', 'address', 'zip-code', 'telephone' ];
address_bar.apply(this, x);

你可以在这里阅读更多关于应用的信息: