我试图弄清楚这段代码在做什么,以及它是如何工作的。不带任何参数时如何调用foo = require('foo')?
foo.js
module.export = async () => { do something and return response(200) }
bar.js
let foo = require('foo')
module.exports = {
foo: async (req) => { return foo(req) }
}
route.js
let api = required('api')
let bar = required('bar')
module.exports = api => {
api.get('/foo', async req => await bar.foo(req))
}
答案 0 :(得分:1)
是的,允许。
js中的所有函数都可以访问名为arguments
的局部变量。 arguments
变量是一个类似数组的对象(看起来像数组,但不是Array
类的实例),包含所有传递给函数的参数。这基本上是支持变量参数的js机制。
示例:
function a () {
for (x=0; x<arguments.length); x++) {
console.log(arguments[x]);
}
}
除了允许您传递比函数js定义的参数更多的参数外,还允许您传递比函数所需的参数更少的参数。您不传递的参数仅被赋予undefined
的值。