Javascript 在node.js中使用命名参数
我正在使用node.js v4.3.1 我希望在调用函数时使用命名参数,因为它们更具可读性 在python中,我可以用这种方式调用函数Javascript 在node.js中使用命名参数,javascript,node.js,function,named-parameters,Javascript,Node.js,Function,Named Parameters,我正在使用node.js v4.3.1 我希望在调用函数时使用命名参数,因为它们更具可读性 在python中,我可以用这种方式调用函数 info(spacing=15, width=46) 如何在node.js中执行相同的操作 我的javascript函数看起来像这样 function info(spacing, width) { //implementation { 标准的Javascript方法是传递一个“options”对象,如 info({spacing:15, width:4
info(spacing=15, width=46)
如何在node.js中执行相同的操作
我的javascript函数看起来像这样
function info(spacing, width)
{
//implementation
{
标准的Javascript方法是传递一个“options”对象,如
info({spacing:15, width:46});
在代码中使用
function info(options) {
var spacing = options.spacing || 0;
var width = options.width || "50%";
...
}
由于对象中缺少键,因此返回未定义的,即“falsy”
请注意,传递“falsy”的值在这种代码中可能会有问题。。。因此,如果需要,您必须编写更复杂的代码,如
var width = options.hasOwnProperty("width") ? options.width : "50%";
或
取决于是否支持继承的选项
还要注意,Javascript中的每个“标准”对象都继承了一个
构造函数
属性,因此不要这样命名选项。使用ES6更容易。nodejs>6.5支持这些功能
您应该查看此链接:
您想要使用的确切用法已实现。不过,我不建议这样做
下面的代码(取自上面的链接)是一个更好的实践,因为您不必记住编写参数的顺序
function drawES6Chart({size = 'big', cords = { x: 0, y: 0 }, radius = 25} = {}) {
console.log(size, cords, radius);
// do some chart drawing
}
您可以通过执行以下操作来使用此功能:
const cords = { x: 5, y: 30 }
drawES6Chart({ size: 'small', cords: cords })
通过这种方式,函数变得更容易理解,如果您有名为size、cords和radius的变量,它会变得更好。然后,您可以使用对象速记来完成此操作
// define vars here
drawES6Chart({ cords, size, radius })
顺序不重要。为什么要添加那些
|
东西?它们是默认值吗?我说的对吗?@user1824987:对。。。例如,如果未传递width
,options.width
将返回undefined
,因此|
操作符将选择右侧。始终使用选项是否更安全。hasOwnProperty
?“falsy”是什么意思?@user1824987它的工作原理与其他语言非常相似。如果|
前面的内容计算为false
,则将使用右侧的部分。Javascript没有命名函数参数。传递对象文本({param:value}
)通常是在Javascript中完成的
// define vars here
drawES6Chart({ cords, size, radius })