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

module.exports = pricingCalculator;

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


这可行。大概是PricingCalculator的变量声明被提升到函数作用域的顶部,因此,无论如何,按顺序通过引用传递函数都不会造成顺序混乱。我明白了。我不明白的是为什么以下两个版本有效:

module.exports = pricingCalculator;

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


失败。

module.exports = pricingCalculator;

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


失败。好奇地了解正在发生的事情。

最佳答案

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

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

关于javascript - CommonJS模块(带有nodejs),陌生,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/4563768/

10-10 21:31