将javascript代码拆分为多个文件,但继续依赖词法范围

时间:2015-12-19 23:55:06

标签: javascript

如何将我的javascript代码拆分为多个文件,但仍然依赖词法范围来共享我的代码库部分之间的变量?

如果我的代码很短,我会写这样的东西,其中cmpnt通过其父范围访问emit函数。我喜欢这种方法,cmpnt在其父级内联定义,因为这是它需要保留的地方;

function ui() {

  function emit(name) {
    console.debug(name)
  }

  function cmpnt(name) {
    emit(name, ' says hello !')
  }

  cmpnt('first compoenent')
  cmpnt('second component')
}

ui()

但是当cmpnt代码变得更长时,我将代码拆分为多个文件,最后我编写了这样的代码,我用一个模块用emit函数创建一个闭包: / p>

// component.js file
function cmpntFactory(emit) {
  return function component(name) {
    emit(name, ' says hello !')
  }
}

// ui.js file
function ui() {

  function emit(name) {
    console.debug(name)
  }
  var cmpnt = cmpntFactory(emit)
  cmpnt('first compoenent')
  cmpnt('second component')
}

ui()

我不熟悉:我将代码拆分成多个文件只是因为它在我的文本编辑器中更容易阅读,但不是因为我在寻找模块化(在这个特殊情况下,我知道模块化是好的)。在访问我网站的任何浏览器中都会创建一个闭包,因为我更喜欢处理小文件,而这是我不喜欢的东西。

有什么方法可以避免这种情况吗?我能想到的唯一方法是使用一个构建系统,它允许我将原始内容从一个文件包含到另一个文件中。这种系统存在吗?或者我错过了什么,有更简单的方法吗?

0 个答案:

没有答案