用于强制执行 JSON 结构的 Javascript 类
Javascript class for enforcing JSON structure
对
JavaScript来说相对较新,所以想知道实现以下要求的最佳方法是什么。我想创建JSON对象(RPC请求对象),并且需要强制执行一些结构。据我了解,JS是动态语言,因此我可以随时向对象添加任何类型。但是,我喜欢定义一个类,我可以填充它来构造 JSON 请求。
var RecReq = {
ID:{},
HeaderLevel:{},
Content:{} //Content object goes here
},
HeaderLevel = {
HeaderID:{},
Note:{}
},
Content = {
Item: [] //Array of Item goes here
},
Item = {
IDs:[]
};
function ReceiveObj() {
this.RecReq = RecReq,
this.HeaderLevel = HeaderLevel,
this.Content = Content,
this.Item = Item
};
return new ReceiveObj();
我确信上面的代码有很多问题。我不认为该对象是在初始化数组的情况下创建的。 在返回的对象上,我无法执行push()
操作将 iten 插入内容。
你会如何处理这个问题。您是动态创建一个对象,还是更好地定义一个强制实施某些结构的对象。
如果正如您的代码所建议的那样,您希望实例继承外部对象,一种方法是将"类"的原型(小心在 JS 中用类术语思考 - 它不是 Java 等意义上的类)分配给对象。
var obj = {
prop_1: 'foo',
prop_1: 'bar'
}
function Something() {
alert(this.prop_1); //alerts "foo"
}
Something.prototype = obj;
var something = new Something();
这只是一种方式。有许多用于控制继承的模式(以及其他无需接近继承概念即可实现所需内容的模式)。
至于push()
不起作用,在你的代码中,Content
是一个对象,而push()
是Array
原型的方法。换句话说,您只能push()
数组。也许你的意思是Content.Item
,它是一个数组。
最后,我会避免大写名称。在 JavaScript 中,这往往只使用类模拟中使用的函数(如 ReceiveObj)来完成,以表示它们应该被实例化,而不仅仅是调用。
相关文章:
- 处理此命名空间 JavaScript 结构的最佳方法是什么?
- 我该如何开始使用C#和MVC创建这个javascript结构呢
- 我的javascript结构出了什么问题
- 数组的JavaScript结构
- 对JavaScript结构进行排序
- 特殊的JavaScript结构:对象定义中的对象类型变量
- JavaScript -结构数组
- 是否可以对这个javascript结构进行单元测试?
- 这两种javascript结构的区别是什么?
- WebBrowser控件不能与某些javascript结构一起工作
- 如何改进我的JavaScript结构以更好地利用OOP
- 我KISS(保持简单,愚蠢),但这个JavaScript结构可以改进吗
- 搁架javascript结构说明
- JavaScript结构元素名称来自变量-如何更改
- 用于存储1000个标签/本地化标准化的JavaScript结构(或数组或列表)
- 是否有更好的替代下列javascript结构
- Javascript结构,以便轻松地提供不同级别的调试代码
- 使用Python中的beautiful soup从网站上的javascript结构中提取数据的问题
- 用于将HTML屏幕元素绑定到Javascript结构的框架/库
- 使用JSON Rest将Javascript结构与服务器端同步