1

さて、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;
}

失敗。何が起こっているのかを深く理解することに興味があります。

4

1 に答える 1

0

最初の例では、割り当ての前に関数が定義されています (Java スクリプトの方法)。
2 番目と 3 番目の例では、割り当てが順番に実行されます。

http://studiokoi.com/blog/article/execution_order_of_functions_and_variables_in_javascript_and_actionscript

于 2010-12-30T15:47:56.563 に答える