JavaScript(NodeJS)等价于PHP';s调用用户函数数组()
JavaScript(NodeJS)中是否有类似于PHP的JavaScript(NodeJS)等价于PHP';s调用用户函数数组(),javascript,php,node.js,Javascript,Php,Node.js,JavaScript(NodeJS)中是否有类似于PHP的 调用用户函数数组()。它允许使用参数数组调用函数 在我的例子中,我必须使用数组中的参数调用util.format 这里有一个非常简单的例子试图说明这一点 var util = require("util"); function my_fundtion(items) { var format_string = ""; for (var i=0; i < items.length; i++) { format_str
调用用户函数数组
()。它允许使用参数数组调用函数
在我的例子中,我必须使用数组中的参数调用util.format
这里有一个非常简单的例子试图说明这一点
var util = require("util");
function my_fundtion(items) {
var format_string = "";
for (var i=0; i < items.length; i++) {
format_string += " %s";
}
return util.format(format_string, /* here I want to pass items in items array */);
}
var util=require(“util”);
功能我的基金(项目){
var format_string=“”;
对于(变量i=0;i
PHP有:
call_user_func_array('myfunc', array(1, 2, "foo", false));
而JS有:
myfunc.apply(null, [1, 2, "foo", false]);
第一个null
位于对象的位置。如果函数打算成为一种方法,那么您将使用它。使用这种调用的一个例子是切片类似数组的对象,这些对象根本不是数组,但看起来像一个数组(如函数中的参数对象):
一般来说,语法是:
(afunction).apply(obj|null, array of arguments)
您可以尝试以下方法:
function my_fundtion(items) {
var format_string = "";
for (var i=0; i < items.length; i++) {
format_string += " %s";
}
var new_items = items.slice();
new_items.unshift(format_string);
return util.format.apply(null, new_items);
}
因为call\u user\u func\u数组
调用字符串中函数名引用的函数。因此,在JS中,我们需要使用eval
例如:
const popup = (msg) => {
alert(msg);
}
const subject = {
popup(msg) {
alert(msg);
}
}
所以
纠正我。如果我错了 在您的示例中,您的意思是:对于(var i=0;imyFunction.apply(object或null,args)
@thiswayup否,它将获得与数组项相同数量的占位符。BTW,格式\u字符串
将始终empty@LuisMasuelli更正了,谢谢!myfunction.apply()有帮助。是的,要使用array.join(),忘记了:)
function my_fundtion(items) {
return items.join(" ");
}
const popup = (msg) => {
alert(msg);
}
const subject = {
popup(msg) {
alert(msg);
}
}
eval("popup").apply(null, ['hi'])
eval("subject.popup").apply(null, ['hi'])