在某种情况下,我不知道如何使函数参数成为可选参数。 情况是,如果我有多个参数,而最后一个参数不是可选的。我看到ejs模板引擎解决了这个问题:
ejs.renderFile(templatesPath, options, (err, html) => {
if (err) {
console.log(err);
error = err;
} else {
res.write(html);
res.end();
}
})
因此,如果我不传递选项参数,则回调函数仍将被识别为回调函数,而不是选项对象-并且分配给它的角色仍然是回调函数,而不是错过的角色参数-通常会如此。
那么如何解决-在Javascript中-我仍然定义2-3个或更多参数(在函数定义中),但是如果我不传递可选参数-不是最后一个-它不会更改传递的参数角色。
谢谢
答案 0 :(得分:0)
重要的是参数的顺序。因此,您必须尊重它。
如果该函数不支持任何值,则只需传递undefined
,null
或空对象{}
。
在下面,options
被声明但未赋值(undefined
)。顺序得到尊重,它将起作用。
您可以保持这种方式:始终声明变量以将其传递给函数,并仅在拥有变量时才为其赋值。
var options;
ejs.renderFile(templatesPath, options, (err, html) => {
if (err) {
console.log(err);
error = err;
} else {
res.write(html);
res.end();
}
});