javascript - CommonJS 模块(使用 Nodejs),奇怪

标签 javascript commonjs

好的,在 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/

相关文章:

javascript - 动画图标不会在切换单击时占据其原始位置

javascript - 如何通过与 jQuery 集成来检查 TempData 是否为空?

javascript - 上传前检测文件大小问题

momentJS 上的 Typescript 模块系统表现异常

angularjs - 如何使 Typescript 与 SystemJS 和 Angular 一起使用成为可能?

javascript - 用于 JavaScript 服务器开发的最佳 IDE

javascript - Backbone.marionette : jQuery document. 已准备好,未在路线上运行

javascript - 每个带有 ajax 调用的 jQuery 将在完成之前继续

javascript - 有没有办法允许 browserify 模块访问全局范围(窗口对象)?

javascript - Browserify 从全局范围的 require 加载依赖项,而不是期望它们被捆绑在一起