无法通过原型函数传递此信息

时间:2015-12-07 16:15:52

标签: javascript module

我有以下模块和子模块:

// Parent module "API"
var API = function(){
    console.log('loading API');
    this.param = 12345;
}

// A method for instantiating the City module via the API
API.prototype.City = function(){
    return City(this);            // <--- Can't pass this here? 
}

// Submodule "City"
var City = function(api){
    console.log("loading City");
    console.log(api);            // <--- Just prints empty object {}
}

var api = new API();
console.log(api);
var denver = new api.City();

我希望能够通过api实例化City来传递this对象。但它只是传递一个空物体。

最终输出:

loading API
{ config: 12345 }
loading City
{}

在实例化时,是否无法将父模块传递给子模块?

1 个答案:

答案 0 :(得分:1)

我想你想要

API.prototype.City = function(){
    return new City(this);
//         ^^^
}

…
var denver = api.City();
//              ^^^^^^^ standard *method* call