さて、NodeJS のコンテキストで CommonJS モジュール システムを試してみます。
module.exports = pricingCalculator;
function pricingCalculator (options) {
var target = {};
return target;
}
これは機能します。おそらく、pricingCalculator の変数宣言は関数スコープの先頭に引き上げられているため、関数はいずれにせよ参照によって渡されるため、順序の誤りは問題になりません。わかりました。私が理解していないのは、次の2つのバージョンが機能する理由です。
module.exports = pricingCalculator;
var pricingCalculator = function (options) {
var target = {};
return target;
}
失敗。
module.exports = pricingCalculator;
pricingCalculator = function (options) {
var target = {};
return target;
}
失敗。何が起こっているのかを深く理解することに興味があります。