「労働者が自分の仕事をうまくやりたいなら、まず自分の道具を研ぎ澄まさなければなりません。」 - 孔子、「論語。陸霊公」
表紙 > プログラミング > 関数パラメータの分割

関数パラメータの分割

2024 年 11 月 8 日に公開
ブラウズ:236

Destructuring in function parameters

three.js にプロジェクトがあり、いくつかのジオメトリが必要だとします。x、y、z の値と、それらの値を含むオブジェクトの配列をハードコードします。幅、高さ、深さの値ですが、この配列はサーバーまたはサードパーティの API から取得される可能性があります =>

const geometriesRaw = [
    {
      color: 0x44aa88,
      x: 0,
      y: 1,
      z: 0,
      width: 1,
      height: 1,
      depth: 1
    },
    {
      color: 0x8844aa,
      x: -2,
      y: 1,
      z: 0,
      width: 1.5,
      height: 1.5,
      depth: 1.5
    }

  ];

次に、配列を使用してレンダリングします。マップ関数 =>

  const cubes = geometriesRaw.map((cube)=>{
    
  }) 

このコードが冗長であることが一目でわかり、毎回引数キューブを繰り返しています。
もう 1 つの危険信号は、配列からどのプロパティを使用しているかが明確でないことです。たとえば、z はどちらの場合も 0 であり、おそらく大部分の場合は 0 になるでしょう。
通常の使用例では、このプロパティを関数に公開すべきではありません。これは Depth プロパティでも頻繁に発生する可能性があります。

そのため、最良のオプションは、次のようにオブジェクトの配列からのプロパティを構造化することです =>

 const cubes = geometriesRaw.map(({x,y, width, color})=>{
    
  }) 

今度は、x、y、幅、色を使用するだけです。このようにして、z、高さ、深さが関数内のデフォルトのプロパティであり、サーバーまたはサードパーティからのデータからは必要ないことを暗示しています

このようにして、キューブの定数と対話する将来の開発者のためにプロパティを非表示にし、外部ソースから必要なものと、より良い実践のためにデフォルトとして設定しているものだけを表示します。
const z = 0
...
関数内でさらにわかりやすくするために

リリースステートメント この記事は次の場所に転載されています: https://dev.to/kevincoto/destructuring-in-function-parameters-5gkb?1 侵害がある場合は、[email protected] に連絡して削除してください。
最新のチュートリアル もっと>

免責事項: 提供されるすべてのリソースの一部はインターネットからのものです。お客様の著作権またはその他の権利および利益の侵害がある場合は、詳細な理由を説明し、著作権または権利および利益の証拠を提出して、電子メール [email protected] に送信してください。 できるだけ早く対応させていただきます。

Copyright© 2022 湘ICP备2022001581号-3