Vanilla-javascript

时间:2018-07-17 11:04:17

标签: javascript parameters arguments function-declaration

在某种情况下,我不知道如何使函数参数成为可选参数。 情况是,如果我有多个参数,而最后一个参数不是可选的。我看到ejs模板引擎解决了这个问题:

ejs.renderFile(templatesPath, options, (err, html) => {
    if (err) {
         console.log(err);   
         error = err;
    } else {
         res.write(html);
         res.end();
    }
})

因此,如果我不传递选项参数,则回调函数仍将被识别为回调函数,而不是选项对象-并且分配给它的角色仍然是回调函数,而不是错过的角色参数-通常会如此。

那么如何解决-在Javascript中-我仍然定义2-3个或更多参数(在函数定义中),但是如果我不传递可选参数-不是最后一个-它不会更改传递的参数角色。

谢谢

1 个答案:

答案 0 :(得分:0)

重要的是参数的顺序。因此,您必须尊重它。

如果该函数不支持任何值,则只需传递undefinednull或空对象{}

在下面,options被声明但未赋值(undefined)。顺序得到尊重,它将起作用。

您可以保持这种方式:始终声明变量以将其传递给函数,并仅在拥有变量时才为其赋值。

var options; 
ejs.renderFile(templatesPath, options, (err, html) => {
    if (err) {
         console.log(err);   
         error = err;
    } else {
         res.write(html);
         res.end();
    }
});