如何在 JavaScript 中创建数据结构?

How to create data structure in JavaScript?

我是一名 C# 开发人员,也在尝试着手 JavaScript。

对于数据处理程序,我想创建如下数据结构:

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

来自 C#,我会为主要结构创建一个 "class" (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;
}

和组织者和场地的 "class" (address.js):

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

因为我需要在 Gig-class 中引用地址-class,所以我想在主 class 中引用地址-class,喜欢

包括address.js

我在网上搜索了一下,令我大吃一惊的是,似乎根本没有包含机制。 HTML5 介绍了一种将 JavaScript 包含在另一个 JavaScript、but is seems like no browser is supporting this so far I red some possible solutions here 中的方法,但它们看起来都像是黑客(根据我的预期)简单的一行代码。

那么,现在您如何使用另一个 JavaScript-File?我是否需要为此使用其他架构方法?我是否只是将它们包含在调用 html 中,当我为主要 class 编写代码时,我只是希望地址 class 也被加载?

提前致谢,
弗兰克

简单方法:将类嵌入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();

您通过 npm 安装 browserify 和其他模块,然后捆绑:

browserify main.js -o dist.js

然后在您的 html <script> 标签中包含 dist.js

使用RequireJS. Requirejs is a library that provides a nice interface for handling dependencies. There is a nice tutorial for it here。除此之外,你是对的,目前没有在 JS 中强制执行依赖关系的实现方法,除了希望使用你的 JS 文件的人已经在 html 中添加了正确的源元素。这就是 JavaScript 个库通常被压缩到一个文件中的原因。