2017-03-15 11 views
0

最初のファイルには、次のものが含まれていますエクスポートされていない関数が実行されるのはなぜですか?

function func() 
{ 
    console.log("Func"); 
} 

func(); 

function func1() 
{ 
    console.log("Func1"); 
} 

module.exports.expFunc = func1; 

第二のファイルは、以下を有する:

var newFunc = require('./prac'); 

newFunc.expFunc(); 

第二のファイルが実行された出力は、以下である:

Func 
Func1 

なぜエクスポートされた関数が2番目の関数だけであっても、2番目のファイルの最初の関数は実行されますか?

答えて

2

ファイルが必要な場合は、解析されて実行されます。通常は関数を宣言するだけですが、コードにfunc()を呼び出しているので、必要に応じてその呼び出しを実行します。必要なファイルのfunc()へのコールを削除すると、その機能は実行されません。

+0

2番目のファイルで関数を呼び出さずに関数をエクスポートする方法はありますか?私は最初のファイルで 'func()'呼び出しを削除したくありません。 – yobro97

+0

あなたは何をしようとしているのか分かりません。どの機能を実行しますか? – ChrisG

+0

最初のファイルのコードを変更せずに出力を 'Func1'にします。 – yobro97

関連する問題