如何记录JavaScript / CoffeeScript数据结构
我正在寻找一种描述性的方式来记录我的JavaScript应用程序中使用的数据结构。 由于JavaScript的动态特性,我很难完成这项工作。
例如,有一个很好的方法可以告诉,使用的变量距离是一个长度为i和j的二维数组,存储的数值介于-1和MAX_INT之间。 我可以想到这样的事情:
distance[i][j] = -1 <= n <= MAX_INT
一个用作某种数据类型的地图/字典的对象呢,一个数组的第一个元素定义了其他数据,然后是其他数据的二维数组呢?等等。
当然,总是可以在文本中记录这些内容,我只是想,也许有一种众所周知的方法可以用半正式的方式来做到这一点。
尽管它没有被广泛采用(还没有?),但JSON模式还是有一个标准草案。 我只是自己学习它,但你可以为你的二维数组(包装在一个对象内)编写一个模式为:
{
"description":"Two dimensional array of numbers",
"type":"object",
"properties":{
"two-d-array":{
"description":"columns",
"type":"array",
"items":{
"description":"rows",
"type":"array",
"items": {
"description":"values",
"type":"number",
"minimum":-1,
"maximum":Number.MAX_VALUE
}
}
}
}
}
或者干脆:
{
"type":"array",
"items":{
"type":"array",
"items": {
"type":"number",
"minimum":-1,
"maximum":Number.MAX_VALUE
}
}
}
没有我知道的CoffeeScript实现,但是这里有几个JavaScript验证器的列表。 我正在玩被规范作者所写的(简单地说)json-schema所写的那个,我很喜欢从CoffeeScript中调用它。
当我复制大量数据模型时,我倾向于在JavaScript中执行的操作是写出他们的类定义在评论中的含义。 我不确定这是否是您的问题。
// JavaScript Class jsHomeLocation
// jsHomeLocation{
// string name
// string address
// }
var jsHomeLocation = {};
jsHomeLocation.name = "Travis";
jsHomeLocation.address = "California";
您还可以使用javascript对象来跟踪示例的信息,这是一个二维数组
var distanceData = {};
distanceData.type = "two-dimensional array";
distanceData.length = i * j;
distanceData.min = -1;
distanceData.max = MAX_INT;
链接地址: http://www.djcxy.com/p/57173.html
上一篇: How to document JavaScript/CoffeeScript data structures