如何创建ES5模块作为父模块的子级?

时间:2015-12-04 22:39:15

标签: javascript node.js ecmascript-5

使用ES5语法,如何创建子模块?为什么以下不起作用?

// City.js
var City = function(){}
module.exports = City;

// API.js
var City = require('./City');
var API = function(){
  ...
}
API.prototype.City = City;
module.exports = API;

// app.js
var API = require('./API');
var api = new API();

var Orlando = new api.City(); // <--- why doesn't this work?

所以我有一个API模块,子/模块“City”。当使用我的API库(实际上除了“City”之外还有更多的子模块)时,我不希望用户require()中的每个小子模块都有app.js。我希望API模块为他们做到这一点,以便他们需要做的就是实例化它。

我该怎么做呢?我见过其他类型的库这样做,但我不确定如何。 AWS就是一个很好的例子:

http://docs.aws.amazon.com/AWSJavaScriptSDK/guide/node-examples.html

他们需要AWS对象,然后实例化AWS.S3模块。他们没有require('S3')或类似的东西。

图书馆如何做到这一点?

0 个答案:

没有答案