2012-11-13 37 views
0

我最近問了一個問題,但無法真正理解答案。這是我所能理解的。有人可以請驗證,如果這是正確的方式去做類似於C#的地方,我有命名空間?需要注意的是以下三個文件,它們都引用到對方,但這些都沒有在這裏展示:這是我用JavaScript創建javascript命名空間的正確方法嗎?

/Admin/dialog/start.ts 
module Admin.dialog { 
    export function x() { }; 
    Admin.grid.y(); // executes the function inside of file2.ts 
} 

/Admin/dialog/file1.ts 
module Admin.dialog { 
    export function y() { }; 
} 

/Admin/grid/file2.ts 
module Admin.grid { 
    export function y() { }; 
} 

回答

2

這裏是我建議的結構:

./Admin/Dialog.ts

module Admin { 
    export class Dialog { 
     x() { 
      this.y(); 
     } 

     y() { 

     } 
    } 
} 

./Admin/Grid.ts

module Admin { 
    export class Grid { 
     y() { 
     } 
    } 
} 

然後您可以使用這些模塊:

///<reference path="./Admin/Dialog.ts" /> 
///<reference path="./Admin/Grid.ts" /> 

var dialog = new Admin.Dialog(); 
dialog.x(); 

var grid = new Admin.Grid(); 
grid.y(); 
+0

感謝您的建議。我不清楚的唯一一件事是我在目錄/ Admin/Dialog /目錄中有很多功能,並且每個功能都在它們自己的文件中。例如函數x(),y()和z()的x.ts和y.ts和z.ts。鑑於這種情況,你會如何建議我使用模塊? –

+0

我會將所有這些功能移到「管理」模塊中的「對話框」類中,因爲它們是相關的,並且可能因相同原因而改變。 – Fenton