使用单独文件中定义的构造函数模拟内部类

时间:2015-10-07 12:30:29

标签: javascript oop

我正在设计一个前端模块。由于我的团队熟悉OO风格的编程和.NET,我在很大程度上依赖于构造函数,每个函数目前都在自己的文件和自己的范围内。

请参阅以下示例设置。

档案employee.js

(function(my) {
  "use strict";

  my.Employee = function() {
    var self = this;
    self.name = "John Doe";
  };
}(window["MyNamespace"]));

另一个文件company.js

(function(my) {
  "use strict";

  my.Company = function(data) {
    var self = this, employees = [];

    self.name = data.name || "New company";

    self.spawnNewEmployee = function() {
      employees.push(new my.Employee());
    }    
  };
}(window["MyNamespace"]));

重要位:我的构建过程会将这些文件捆绑并缩小为最终文件。我推迟了决定某项特定技术(可能是我的实际问题,不确定)。

问题:任何有Employee访问权的人都可以使用window["MyNamespace"],这是任何脚本。但是,我想隐藏Employee给模块外的消费者,同时保持对Company构造函数的访问权。

在C#或Java项目中,有internal个类。 是否存在使用JavaScript构造函数模拟内部类的惯用方法?或者我应该依赖构建后步骤/捆绑+缩小工具来决定导出到全局命名空间的内容?或者我是否把事情完全混淆了?

0 个答案:

没有答案