関数の引数をマスターする: JavaScript では少ない方が良い

Mary-Kate Olsen
リリース: 2024-10-03 18:20:30
オリジナル
204 人が閲覧しました

Mastering Function Arguments: Less is More in JavaScript

開発者の皆さん! ?今日は、クリーンで保守しやすい JavaScript を作成するための重要な側面、つまり関数の引数の管理について詳しく見ていきましょう

引数が多すぎる問題

次のような関数に遭遇したことがありますか?

function createMenu(title, body, buttonText, cancellable, theme, fontSize, callback) {
  // ...a whole lot of logic here
}
ログイン後にコピー

もし経験があるなら、引数の順序を覚えようとする苦労や、さらに悪いことに、誰かが必然的に引数を混同したときにデバッグする苦労を知っているでしょう。 ?

2 つの引数のルール

これが黄金律です: 関数の引数は 2 つ以下に制限するようにしてください
なぜ?説得力のある理由をいくつか挙げます:

  • テスト容易性の向上: 引数が少ないということは、すべての可能性をカバーするためのテスト ケースが少ないことを意味します。
  • 可読性の向上: 関数の目的を一目で理解することが容易になりました。
  • 認知負荷の軽減: 関数を使用する開発者にとって、パラメータの精神的な操作が軽減されます。

しかし、さらにパラメータが必要な場合はどうすればよいでしょうか?

素晴らしい質問です!ここで、オブジェクトの分割の魔法が役立ちます。これを確認してください:

function createMenu({ title, body, buttonText, cancellable, theme = 'light', fontSize = 16, callback = () => {} }) {
  // Your implementation here
}

// Usage
createMenu({
  title: "Settings",
  body: "Adjust your preferences",
  buttonText: "Save",
  cancellable: true
});
ログイン後にコピー

このアプローチの利点

  • 名前付きパラメータをシミュレートします: 引数は任意の順序で指定できます。 自己文書化: 関数シグネチャは、どのようなプロパティが期待されるかを明確に示します。 デフォルト値: オプションのパラメータのデフォルトを簡単に設定します。 副作用の防止: クローンのプリミティブ値を分割することで、偶発的な突然変異を回避できます。 リンターフレンドリー: ツールは、未使用のプロパティについて警告することができます。

プロのヒント: TypeScript Boost

TypeScript を使用している場合は、さらに一歩進めることができます:

interface MenuOptions {
  title: string;
  body: string;
  buttonText: string;
  cancellable: boolean;
  theme?: 'light' | 'dark';
  fontSize?: number;
  callback?: () => void;
}

function createMenu(options: MenuOptions) {
  // Implementation
}
ログイン後にコピー

これにより、型安全性とオートコンプリートが追加され、コードがさらに堅牢になります!

まとめ

このパターンを採用すると、関数がより柔軟になり、使いやすく、保守が簡単になることがわかります。これは小さな変更ですが、コードの品質に大きな影響を与える可能性があります。

このアプローチについてどう思いますか?関数の引数を管理するためのその他のヒントはありますか?コメントで話し合いましょう!

コーディングを楽しんでください! ?

以上が関数の引数をマスターする: JavaScript では少ない方が良いの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:dev.to
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!