在 node.js 中使用命名参数
Using named parameters in node.js
我正在使用 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});
用在代码中with
function info(options) {
var spacing = options.spacing || 0;
var width = options.width || "50%";
...
}
因为对象 return undefined
中缺少键,即 "falsy"。
请注意,传递 "falsy" 的值对于此类代码可能会有问题...因此,如果需要,您必须编写更复杂的代码,如
var width = options.hasOwnProperty("width") ? options.width : "50%";
或
var width = "width" in options ? options.width : "50%";
取决于您是否要支持继承选项。
还要注意 Javascript 中的每个 "standard" 对象都继承了 constructor
属性,所以不要那样命名选项。
使用 ES6 更容易。 nodejs > 6.5 支持这些功能。
你应该看看这个 link:
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Destructuring_assignment
您想要使用的确切用法已实现。但是我不推荐它。
下面的代码(摘自上面的 link)是一个更好的做法,因为您不必记住应该按什么顺序编写参数。
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 的变量,它会变得更好。然后你可以使用对象 shorthand.
来做到这一点
// define vars here
drawES6Chart({ cords, size, radius })
顺序无关紧要。
我正在使用 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});
用在代码中with
function info(options) {
var spacing = options.spacing || 0;
var width = options.width || "50%";
...
}
因为对象 return undefined
中缺少键,即 "falsy"。
请注意,传递 "falsy" 的值对于此类代码可能会有问题...因此,如果需要,您必须编写更复杂的代码,如
var width = options.hasOwnProperty("width") ? options.width : "50%";
或
var width = "width" in options ? options.width : "50%";
取决于您是否要支持继承选项。
还要注意 Javascript 中的每个 "standard" 对象都继承了 constructor
属性,所以不要那样命名选项。
使用 ES6 更容易。 nodejs > 6.5 支持这些功能。
你应该看看这个 link:
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Destructuring_assignment
您想要使用的确切用法已实现。但是我不推荐它。
下面的代码(摘自上面的 link)是一个更好的做法,因为您不必记住应该按什么顺序编写参数。
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 的变量,它会变得更好。然后你可以使用对象 shorthand.
来做到这一点// define vars here
drawES6Chart({ cords, size, radius })
顺序无关紧要。