2015-06-30 28 views
-2

我是一名C#開發人員,他也試圖抓住JavaScript。如何在JavaScript中創建數據結構?

對於數據處理程序,我想創建一個數據結構,如:

id, 
begin, 
end, 
organiser, 
    name, 
    city, 
    postalcode, 
    street, 
venue, 
    name, 
    city, 
    postalcode, 
    street 

從C#來,我就會創建一個「類」(gig.js)爲主要結構:

function Gig(gig) 
{ 
    this.id = gig.id; 
    this.begin = gig.begin; 
    this.end = gig.end; 
    this.organiser = gig.organiser; 
    this.venue = gig.venue; 
} 

和對組織者和場地「類」(address.js):

function Address(a) 
{ 
    this.name = a.name; 
    this.city = a.city; 
    this.postalcode = a.postalcode; 
    this.street = a.street; 
} 

正如我需要參考的地址在千兆級ESS級,我想引用地址級的主類,像

包括address.js

我已經通過網絡和我的巨大的驚喜搜索,似乎有根本不包括機制。 HTML5引入了一種將JavaScript包含在另一個JavaScript中的方法,but is seems like no browser is supporting this so far我紅了一些possible solutions here,但它們看起來都像一個簡單的一行代碼(來自我的預期)。

那麼,你現在如何使用另一個JavaScript-File?我是否需要爲此使用其他架構方法?我是否僅僅將它們包含在調用html中,並且當我爲主類編寫代碼時,我只希望地址類也被加載了?

由於提前,
弗蘭克

+0

我不太清楚你在問什麼。如果您將地址類包含在HTML中,爲什麼地址類不會被加載? – JJJ

+0

_「對於數據處理程序,我想創建一個數據結構,如:」_將生成的對象包含屬性,'Gig','Address'的值嗎? – guest271314

+0

@Juhana:由於gig.js需要包含,所以我會將其視爲非常糟糕的體系結構,以便在另一個文件中引用它。我需要gig.js中的引用,所以我想將引用放在gig.js中,對吧? – Aaginor

回答

1

使用RequireJS。 Requirejs是一個提供處理依賴關係的好界面的庫。有一個很好的教程here。除此之外,你是對的,目前沒有實現的方式來強制JS中的依賴關係,除非希望誰使用你的JS文件在html中添加了正確的源代碼元素。這就是爲什麼JavaScript庫通常被壓縮爲一個文件的原因。

+0

感謝您的信息!我開始使用AngularJS並試圖習慣它。如果這還不足以創建數據結構,我將查看RequireJS。同時,我希望瀏覽器會執行#include語句:) – Aaginor

1

簡單的方法:嵌入類的HTML:

<script src="path/to/address.js"></script> 
<script src="path/to/gig.js"></script> 
<script> 
    // address is loaded before gig (sync loading), and now can use both 
</script> 

用於更復雜的依賴關係:一種常見的方式來處理它捆綁你的模塊使用browserify

編輯: 由於後者似乎是你要找的,這裏有一個例子:

SRC/gig.js:

// require dependencies 
// one of your source files 
var Address = require('./src/address'); 
// npm package dependency as installed by npm i someLib --save-dev 
var someLib = require('someLib'); 

var Gig = function() { 
    this.address = new Address(); 
} 
// provide dependency 
export.Gig = Gig; 

main.js:

var exampleStuff = require('src/Gig'); 
go(); 

在安裝browserify和通過NPM附加模塊,則捆綁:

browserify main.js -o dist.js 

然後包括dist.js在您的html <script>標記

+0

感謝這個例子!我在npm的時候看過一次,所以看起來我應該試着去熟悉它。現在,我嘗試了AngularJS,看看我有多遠。 – Aaginor