命名空间中的类

问题描述:

我希望我的代码看起来像这样,但我不知道如何实现这一点。命名空间中的类

var employee = namespace.employee(2); // return object 
var employeeName = namespace.employee(2).name; // return string 
var name = employee.name; 

我想创建一个命名空间这样

var namespace = (function(){ 

})(); 

然后把喜欢里面的类,我只是不太知道从哪里开始。

+2

你寻找这样的东西? https://toddmotto.com/mastering-the-module-pattern/ –

这是所有你需要实现的行为:

var namespace = {}; 

namespace.employee = function (num) { 
    return { name: num }; 
}; 

返回包含密钥name一个对象的对象namespace上的功能employee

假设你想要的东西,像员工的仓库和num告诉它要返回的员工:

var namespace = {}; 

var employees = [{ name: 'Joe' }, ...]; 

namespace.employee = function (num) { 
    return employees[num]; 
}; 

假设你希望employees库不全局访问:

var namespace = {}; 

namespace.employee = (function() { 
    var employees = [{ name: 'Joe' }, ...]; 

    return function (num) { 
     return employees[num]; 
    }; 
})();