条件分岐は呼び出し元と呼び出し先、どちらに書くのが良いでしょうか


以下の2つのJavaScriptのコードがあるとします。  
細かいパフォーマンスを除けば、どちらも同じ出力が得られるはずです。  
違いは、変数isMorningがtruthyなら関数morningGreeting()をコールするか、関数morningGreeting()は必ずコールしてその中で分岐するか、ということです。

[code]

    if (isMorning) morningGreeting();
    
    function morningGreeting() {
      console.log('Good morning!');
    }
    
[/code]

[code]

    morningGreeting();
    
    function morningGreeting() {
      if (isMorning) {
        console.log('Good morning!');
      }
    }
    
[/code]

一般的に、どちらのコードの方が保守性・可読性の点で優れているか、というのはあるでしょうか？  
プロジェクトで統一されていればどちらでもいいという意見もあるかもしれません。  
皆さんのご意見を伺いたいです。




`console.log('Good
morning!');`を実行するのは`isMorning`が偽のときに限るのか、そうでないのかで決まる話だと思います。  
限るのであれば、モジュール強度の観点でfunctionの中で実行するのがよいと思います。




`console.log('Good
morning!');`を実行するのは`isMorning`が偽のときに限るのか、そうでないのかで決まる話だと思います。  
限るのであれば、モジュール強度の観点でfunctionの中で実行するのがよいと思います。

