ホームページ > ウェブフロントエンド > jsチュートリアル > ES6 で関数パラメータを構造化するときにルート オブジェクト名を保持する方法は?

ES6 で関数パラメータを構造化するときにルート オブジェクト名を保持する方法は?

DDD
リリース: 2024-11-04 06:24:29
オリジナル
566 人が閲覧しました

How to Preserve the Root Object Name When Destructuring Function Parameters in 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 サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート