【发布时间】:2013-08-11 22:04:06
【问题描述】:
有没有办法从 JSON 模式构建对象构造函数?我想创建一个与我的应用程序命名空间关联的 json 模式,我可以编辑一次,并更改对象的属性(在运行时之前)。
我知道你可以写一个伪经典的对象构造函数,比如
var Note = function(input){
var title = input
};
var newNote = new Note("test title");
是否可以从 json 创建类似的结构?这样我就可以写了:
var Note = {
"title":""
};
var newNote = new Note();
newNote.title = "test title"
我明白以上在语法上是错误的,但我想例如:
var notes = {
"NotesList":[{
"title":"note1",
"content":"test content"
}]
}
var newNote = new Note();
notes.NotesList.add(newNote);
newNote.title = "new title";
这样我就可以将我的所有对象及其所有子对象都建立在从我的 json 模式创建的对象模板中。如果这不可行,您能推荐一个更好的方法吗?
【问题讨论】:
-
这实际上不是 JSON,更不用说 JSON 模式,它只是 Javascript 代码。因此,例如引号是不必要的。如果您将
.add更改为.push,您的代码将按原样运行 -
第三个示例的真正目的是从模式文件中读取 json 并从中创建一个类。
-
为什么不能直接使用解析后的 JSON?没有必要在只有数据或列表的对象后面有类。
-
我想使用 json 创建一个类,我可以在该类上调用构造函数来创建具有这些默认属性的新实例。
-
您可以将其视为设计时函数,并使用 t4 模板之类的东西从 JSON 模式作为输入生成伪经典版本(或其他版本)。只是一个想法。
标签: javascript json oop