這可能是與JS小提琴一個問題,但我使用console.log()
打印對象的集合的值。JavaScript控制檯登錄彙報對象屬性不正確
首先我用一些數據(一些對象)和控制檯記錄它來初始化對象集合。
然後我更新此收集了一些新的數據和控制檯日誌它。
發生的情況是,即使對象數據已更改,第一個和第二個控制檯日誌也是完全相同的。我想知道這是否是一個錯誤,或者如果我做錯了什麼。
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日誌是相同!
這只是試圖成爲智能瀏覽器 - 它的更新控制檯日誌查看對象,因爲它是目前。 – tymeJV
真的嗎?我認爲這是一個非常具有誤導性的功能。謝謝。 – BarryBones41