如何在 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 个库通常被压缩到一个文件中的原因。
我是一名 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 个库通常被压缩到一个文件中的原因。