Node.jsv4.3.1を使用しています
名前付きパラメーターは読みやすいので、関数の呼び出しに使用したいと思います。
Pythonでは、この方法で関数を呼び出すことができます。
info(spacing=15, width=46)
Node.jsで同じことをするにはどうすればよいですか?
私のjavascript関数は次のようになります。
function info(spacing, width)
{
//implementation
{
標準のJavascriptの方法は、次のような「オプション」オブジェクトを渡すことです。
info({spacing:15, width:46});
コードで使用される
function info(options) {
var spacing = options.spacing || 0;
var width = options.width || "50%";
...
}
オブジェクトにキーがないため、「偽」のundefined
が返されます。
「偽の」値を渡すと、この種のコードで問題が発生する可能性があることに注意してください...したがって、これが必要な場合は、次のようなより高度なコードを作成する必要があります。
var width = options.hasOwnProperty("width") ? options.width : "50%";
または
var width = "width" in options ? options.width : "50%";
継承されたオプションをサポートするかどうかによって異なります。
Javascriptのすべての「標準」オブジェクトはconstructor
プロパティを継承するため、オプションにそのように名前を付けないように注意してください。
ES6の方が簡単です。 nodejs> 6.5はこれらの機能をサポートしています。
このリンクをチェックする必要があります:
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Destructuring_assignment
使用したい正確な使用法が実装されています。しかし、私はそれをお勧めしません。
以下のコード(上記のリンクから取得)は、パラメーターを書き込む順序を覚えておく必要がないため、より適切な方法です。
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 })
このようにして、関数がより理解しやすくなり、サイズ、コード、半径という名前の変数があるとさらに良くなります。次に、オブジェクトの省略形を使用してこれを行うことができます。
// define vars here
drawES6Chart({ cords, size, radius })
順序は関係ありません。