関数型プログラミング: 関数内での外部依存を回避するための引数の受け渡し


  • 前回の投稿からの続きです.グローバル変数の値は変更しませんでしたが、関数 incrementer はグローバル変数 fixedValue がないと機能しません.
  • 関数型プログラミングのもう 1 つの原則は、常に依存関係を明示的に宣言することです.これは、存在する変数またはオブジェクトに関数が依存している場合、その変数またはオブジェクトを引数として関数に直接渡すことを意味します.
  • この原則からは、いくつかの良い結果が得られます.この関数はテストが容易で、どのような入力が必要かが正確にわかり、プログラム内の他のものに依存しません.これにより、新しいコードを変更、削除、または追加する際の自信が高まります.変更できるものと変更できないものを把握し、潜在的なトラップがどこにあるかを確認できます.
  • 最後に、コードのどの部分が関数を実行しても、関数は常に同じ入力セットに対して同じ出力を生成します.
  • incrementer 関数を更新して、その依存関係を明確に宣言しましょう. incrementer 関数を記述して、引数を取り、値を 1 増やした後に結果を返します.

  • var fixedValue = 4;
    
    function incrementer () {
    
    };
    


  • 回答:

  • var fixedValue = 4;
    
    function incrementer (num) {
    return num + 1;
    
    };
    
    console.log(incrementer(5));
    


  • 関数 incrementer は fixedValue の値を変更せず、関数は引数 num も取りました.