sim*_*mon 5 javascript json stringify
有没有办法让下面的浅拷贝只得到一层深?我有一种使用完全不同的设计来解决这个问题的方法,但我想知道是否有其他人遇到过我之前尝试转换为字符串的问题。
var SomeObjClass = function() {
var self = this;
this.group = {
members: [self]
};
};
var p = new SomeObjClass();
var str = JSON.stringify(p);
Run Code Online (Sandbox Code Playgroud)
有点不清楚你在问什么,但如果你的目标是简单地字符串化一个圆形对象,你必须重写toJSON以指定你希望如何表示你的对象
function SomeObjClass () {
var self = this;
this.group = {
members: [self]
};
}
SomeObjClass.prototype.addMember = function(m) {
this.group.members.push(m);
};
// when stringifying this object, don't include `self` in group.members
SomeObjClass.prototype.toJSON = function() {
var self = this;
return {
group: {
members: self.group.members.filter(function (x) {
return x !== self
})
}
};
}
var a = new SomeObjClass();
var b = new SomeObjClass();
a.addMember(b);
console.log(JSON.stringify(a))Run Code Online (Sandbox Code Playgroud)
这可能是我在不查看更多代码的情况下可以为您提供的最好帮助。我不知道你如何使用这段代码,但无论如何,这可能不是你的类的最佳设计。如果您分享该类的其余部分以及使用它的代码,我们可能可以更有效地帮助您。
| 归档时间: |
|
| 查看次数: |
1522 次 |
| 最近记录: |