我已经看到了与此非常相似的问题,但我不能完全确定它们是否得到了明确的回答——也许我有点密集,抱歉。
我想拥有我自己的对象的便利(和清晰),称之为CardboardBox()
. 它不包含代码,只包含数据。我想将其写入数据库并稍后再读回,但显然,Object()
当它被读回时,它是一种类型。我能想到的要找出它曾经是什么是:
type
有一个我设置为 CARDBOARD_BOX的成员变量- 实例化一个新对象
CarbardBox()
并使用一个函数(在框中)将其属性复制Object()
到新CardboardBox()
对象
有没有更好的方法来做到这一点?我很确定我可以更改实际类型。
function CardboardBox() {
this.type = "CARDBOARD_BOX"
this.name = "No set";
this.populate = new function(obj) {
// populate this object with obj properties
}
var box = new CarboardBox(); // CarboardBox
box.name = "My Box";
send = JSON.stringyfy(box);
.
.
.
obj = JSON.parse(send); // Object
if (obj.type == "CARDBOARD_BOX") {
savedBox = new CardboardBox();
savedBox.populate(obj);
}
在此先感谢...史蒂夫
[编辑] 我的测试代码。
function CardboardBox(n) {
this.name = n;
}
var box = new CardboardBox("My Box");
send = JSON.stringify(box); // JSON CarboardBox()
obj = JSON.parse(send, function fn(obj) { // Object() returned
log("OB: "+obj.type);
return obj.type === 'CardboardBox' ? new CardboardBox(obj) : CardboardBox;
});
console.log(obj);
输出是:
OB: undefined utils.js:40
OB: undefined utils.js:40
function CardboardBox(n) {
this.name = n;
}