Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/35.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在node.js中使用命名参数_Javascript_Node.js_Function_Named Parameters - Fatal编程技术网

Javascript 在node.js中使用命名参数

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

我正在使用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: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 })