gpt4 book ai didi

javascript - 函数参数作为字符串但作为函数执行?

转载 作者:行者123 更新时间:2023-12-02 17:51:40 25 4
gpt4 key购买 nike

我有一个函数(名为“chal”),如果参数不是函数,它只需 console.log() 参数,否则调用该函数。

function chal(){
for(var i = 0, iLen = arguments.length; i<iLen;i++)
if(typeof arguments[i] == "function")
//if argument is a function, call it
arguments[i]();
else
//if argument is NOT a function, console.log the value
console.log(arguments[i]);
}

我有一个数组(名为“arr”),其中包含一个函数“AS A STRING”

var arr = [
"argumentAsString",
123,
"function(){console.log('this is a function');}"
];

我需要“chal”函数使用“arr”数组中的参数运行,但数组中作为字符串的函数被作为函数调用。

我知道这很令人困惑...这是 jsFiddle: http://jsfiddle.net/YqBLm/1/

我知道它是挥舞的,但当我需要做这样的事情时,我实际上遇到了一种情况...我基本上将函数作为字符串从服务器端传递到客户端(function.toString()),现在我需要传递它作为客户端函数的参数...有人能想到什么吗?

提前非常感谢!!

最佳答案

如果将函数封装在模块(对象)中,则可以像这样调用它:

JavaScript

var module = {
argumentAsString: function(){..}
}

var arr = [
"argumentAsString",
123,
"function(){console.log('this is a function');}"
];

function chal(){
for(var i = 0, iLen = arguments.length; i<iLen;i++)
if(module.hasOwnProperty[arguments[i]])
//if argument is a function, call it
module[arguments[i]]();
else
//if argument is NOT a function, console.log the value
console.log(arguments[i]);
}

编辑

我可能误解了这个问题! :p

尝试将该函数分配给一个变量,然后将该变量存储在数组中:

var fcn= function(){
console.log('this is a function');
}

var arr = [
"argumentAsString",
123,
fcn
];

编辑2

如果我是对的,以上两个答案都不能解决您的问题。请参阅类似的问题:Convert string (was a function) back to function in Javascript

关于javascript - 函数参数作为字符串但作为函数执行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21293911/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com