ホームページ >ウェブフロントエンド >jsチュートリアル >ES6 で関数パラメータを構造化するときにルート オブジェクト名を保持する方法は?
ES6 関数パラメータの構造化: ルート オブジェクト名の保持
ES6 では、関数の引数を構造化することで、簡潔で表現力豊かなパラメータ処理が可能になります。ただし、親子クラス階層にまたがる複数の構成パラメータを操作する場合、ルート オブジェクトの名前が構造化後に失われる可能性があります。
ES5 では、継承を使用してルート オブジェクトを階層の上に渡すことができます。
// ES5 var setupParentClass5 = function(options) { textEditor.setup(options.rows, options.columns); }; var setupChildClass5 = function(options) { rangeSlider.setup(options.minVal, options.maxVal); setupParentClass5(options); // Pass the options object up };
ただし、ES6 で分割を使用すると、これが問題になります。
// ES6 var setupParentClass6 = ({rows, columns}) => { textEditor.setup(rows, columns); }; var setupChildClass6 = ({minVal, maxVal}) => { rangeSlider.setup(minVal, maxVal); setupParentClass6( /* ??? */ ); // How to pass the root options object? };
ルート オブジェクトの名前を保持するには、分割する前にパラメータとして宣言できます。
const setupChildClass6 = options => { const {minVal, maxVal} = options; rangeSlider.setup(minVal, maxVal); setupParentClass6(options); };
代わりに、setupChildClass6 ですべてのオプションを個別に抽出することもできます:
var setupChildClass6b = ({minVal, maxVal, rows, columns}) => { rangeSlider.setup(minVal, maxVal); setupParentClass6({rows, columns}); };
ただし、この方法ではより多くのコード行が必要となり、複数の非構造化変数を扱う場合には最適ではない可能性があります。
以上がES6 で関数パラメータを構造化するときにルート オブジェクト名を保持する方法は?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。