CommonJS模块(带nodejs),奇怪

时间:2010-12-30 15:20:55

标签: javascript commonjs

好的,在NodeJS的上下文中试验CommonJS模块系统。

module.exports = pricingCalculator;

function pricingCalculator (options) {
  var target = {};
  return target;
}

这很有效。推测priceCalculator的变量声明被提升到函数范围的顶部,因此错误排序并不重要,因为函数无论如何都是通过引用传递的。我明白了。我不明白为什么以下两个版本有效:

module.exports = pricingCalculator;

var pricingCalculator = function (options) {
  var target = {};
  return target;
}

失败。

module.exports = pricingCalculator;

pricingCalculator = function (options) {
  var target = {};
  return target;
}

失败。很想知道发生了什么。

1 个答案:

答案 0 :(得分:0)

在第一个示例中,函数在赋值之前定义(java脚本方式) 在第二和第三个示例中,分配按顺序执行。

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