2014-03-05 9 views
0

我想知道我應該如何設計我的JavaScript文件。具有被每個項目JS重寫的函數的全局對象?

我將有一個global.js文件,將用於所有項目。然後每個項目將擁有自己的project.js文件,其中包含專門針對該項目的特定功能/覆蓋/設置。

所以我想寫我所有的 「全局」 功能,在global.js文件:

Global = function() { 
    var config = {'alpha': 1}; 

    function getConfig() { 
     return this.config; 
    } 

    function printConfig() { 
     console.log(this.getConfig()); 
    } 
}; 

Global.prototype.echoConfig = function() { 
    console.log(this.getConfig()); 
}; 

,我想我的project.js文件,看起來像:

var project = new Global(); 

Global.prototype.projFunc = function() { return 2; }; 

但是,我還沒有想出如何從global.js獲得配置?

我正在使用jQuery,並注意到有$ .extend函數看起來不錯,但是我想首先爲我的global.js和project.js設置結構 - 一般來說我會可能希望將大多數函數從project.js移到global.js中,但可能有一個或兩個項目只需要該應用程序的一個特定函數。

+0

這可能是值得在global.js'的'結束實例化'Global'。 'var global = new Global();'。 '全球'將在全球其他所有的JavaScript訪問。 –

+0

@IanBrindley,所以不要做var project = new Global();在每個project.js中(請記住,每個項目只包含它自己的project.js文件 - > public/[project] /js/project.js) - 然後將其添加到一個global.js文件中?嗯,似乎更好的主意,我會實施它,歡呼! – dan2k3k4

回答

2

你需要有getConfig在公共範圍,因爲你在一個「私」的方式宣告config,您不能使用this.config得到config,只需使用config

Global = function() { 
    var config = {'alpha': 1}; 

    this.getConfig = function() { 
     return config; 
    } 

    function printConfig() { 
     console.log(this.getConfig()); 
    } 
}; 

Scope Tutorial