这可能是 JS Fiddle 的问题,但我正在使用它console.log()
来打印对象集合的值。
首先,我用一些数据(一些对象)初始化对象集合并控制台记录它。
然后我用一些新数据更新这个集合并控制台记录它。
发生的情况是第一个和第二个控制台日志都是相同的,即使对象数据已更改。我想知道这是一个错误,还是我做错了什么。
http://jsfiddle.net/n302nsbh/18/
function FooManager() {
this.objects = {};
this.update = function(data) {
var self = this;
$.each(data, function(i, e) {
var foo = self.objects[i];
if (typeof foo === "undefined") {
foo = new Foo(e);
self.objects[i] = foo;
} else if (foo instanceof Foo) {
foo.update(e);
}
});
}
return this;
}
function Foo(data) {
this.name = data.name;
this.age = data.age;
return this;
}
Foo.prototype.update = function(data) {
this.name = data.name;
this.age = data.age;
}
//------ Update 1 --------//
var appData = {
"0": {
name: "a",
age: 2
},
"1": {
name: "b",
age: 3
}
}
var fooManager = new FooManager();
fooManager.update(appData);
console.log(fooManager.objects);
//------ Update 2 --------//
var newAppData = {
"0": {
name: "a",
age: 443
}
}
fooManager.update(newAppData);
console.log(fooManager.objects);
更新 1 和更新 2 日志是相同的!