我被告知不要for...in在JavaScript中使用数组.为什么不?
有没有办法允许JavaScript中的函数"无限"变量?
例:
load(var1, var2, var3, var4, var5, etc...)
load(var1)
Run Code Online (Sandbox Code Playgroud) 感谢对这个问题的精彩回答,我理解如何用varargs调用javascript函数.
现在我正在寻找使用构造函数的应用程序
我在这篇文章中找到了一些有趣的信息.
但我的代码是错误的
尝试1:
var mid_parser = new Parser.apply(null, mid_patterns);
Run Code Online (Sandbox Code Playgroud)
错误:
TypeError: Function.prototype.apply called on incompatible [object Object]
Run Code Online (Sandbox Code Playgroud)
尝试2:尝试1:
var mid_parser = new Parser.prototype.apply(null, mid_patterns);
Run Code Online (Sandbox Code Playgroud)
错误:
TypeError: Function.prototype.apply called on incompatible [object Object]
Run Code Online (Sandbox Code Playgroud)
尝试2:
function Parser()
{
this.comparemanager = new CompareManager(arguments);
}
mid_patterns = [objA,objB,objC]
var mid_parser = new Parser();
Parser.constructor.apply(mid_parser, mid_patterns);
Run Code Online (Sandbox Code Playgroud)
错误:
syntax_model.js:91: SyntaxError: malformed formal parameter
Run Code Online (Sandbox Code Playgroud)
尝试3:
var mid_parser = Parser.apply(null, mid_patterns);
Run Code Online (Sandbox Code Playgroud)
错误:
TypeError: this.init is undefined // init is a function …Run Code Online (Sandbox Code Playgroud) 我可以使用arguments在函数中获取可变数量的参数,但是如何在不知道其原型的情况下将它们传递给另一个函数?
function show(foo, bar) { window.alert(foo+' '+bar); }
function run(f) { f(arguments); } // not correct, what to do?
run(show, 'foo', 'bar');
Run Code Online (Sandbox Code Playgroud)
注意:我不能保证f传递给函数所需的参数数量run.意思是,即使显示的示例有2个参数,它也可能是0无限,因此以下内容不合适:
function run(f) { f(arguments[1], arguments[2]); }
Run Code Online (Sandbox Code Playgroud) 我想在javascript中使用可变数量的参数创建一个函数.下一个例子是我想如何调用这个函数:
myFunction(1,2);
myFunction(1,2,3);
myFunction(1,2,3,4);
myFunction(1,2,3,4,5);
myFunction(1,2,3,4,5,6);
Run Code Online (Sandbox Code Playgroud)
谁知道如何定义这个功能?
我需要将参数作为真实参数传递给回调函数.我怎么做?回调需要可变数量的参数.
示例函数如下:
var func = function (callback) {
doSomething(function () {
// the goal is to pass on the arguments object to the callback function as real arguments
callback(arguments)
});
}
Run Code Online (Sandbox Code Playgroud)
提前致谢.
它可能是一个类似的问题: 是否可以向JavaScript函数发送可变数量的参数?
但我不明白这个问题,也不理解答案.
编辑:如果可能的话,我想不污染全球.
在Lua中,这样的函数是有效的:
function FuncCallHack(Func, ...)
return Func(...)
end
Run Code Online (Sandbox Code Playgroud)
有没有办法在JavaScript中做到这一点?...对于那些不熟悉Lua的人来说,意味着"未分组数组形式的所有无索引参数".我尝试过...使用JavaScript,但它似乎没有功能,而且由于Google不喜欢搜索特殊字符,所以它没有多大帮助.
我想知道如何为传递给函数的所有参数运行一种方法并返回它们
这是我想要实现的示例:
const getAllData = (args) =>{
args.map((arg)=> useDispatch(arg))
}
return args
Run Code Online (Sandbox Code Playgroud)
并在另一个文件中调用它例如
const [var1,var2,var3] = getAllData()
Run Code Online (Sandbox Code Playgroud)
或者
const allVars = getAllData([var1,var2,var3])
Run Code Online (Sandbox Code Playgroud) javascript ×8
arguments ×2
arrays ×1
callback ×1
constructor ×1
ellipsis ×1
for-loop ×1
function ×1
iteration ×1
loops ×1
parameters ×1
syntax ×1