1
以下のコードでは、のマジックを置き換えるものがあるかと思いますが、その上にあるfooの呼び出しと同じことが行われます。ES6で名前のない非構造化パラメータを参照する方法は?
function foo(a, { b=0, c=1 } = {}) {
console.log(a, b, c);
}
function bar({ b=2, c=3 } = {}) {
foo(99, { b:b, c:c });
// foo(99, magic); // should be equivalent to the above call
}
bar({c:4});
理由ビーイング私は無名のオブジェクトパラメータがかなり大きい機能を持っており、毎回すべてのオブジェクトキーを書くよりも起こりやすい少ないエラーをより見やすくとなり速記のように思えます。 (私のpythonからES6にライブラリを移植し、できるだけ既存のAPIを維持しようとしている。)
編集:これを依頼する別の方法は次のとおりです。「これらのパラメータをループする方法はありbとc名前を知らずに? "
EDIT2:ここでは実際のコードは次のようになります。機能的だが醜い。より良い方法でなければならない。
function Decoder({
encoding="utf-8",
object_hook=echo,
parse_float=Number,
parse_int=Number,
parse_constant=Number,
strict=true,
object_pairs_hook=echo} = {}) {
if(!(this instanceof Decoder)) {
return new Decoder({
encoding:encoding,
object_hook:object_hook,
parse_float:parse_float,
parse_int:parse_int,
parse_constant:parse_constant,
strict:strict,
object_pairs_hook:object_pairs_hook});
}
this.encoding = encoding;
this.object_hook = object_hook;
this.parse_float = parse_float;
this.parse_int = parse_int;
this.parse_constant = parse_constant;
this.strict = strict;
this.object_pairs_hook = object_pairs_hook;
}