【发布时间】:2015-01-08 20:00:57
【问题描述】:
我正在努力学习编程。我浏览了一系列在线教程网站,但我被困在一个我认为对我来说非常重要的事情上。
我的问题:
(这是我最想了解的) 在我的 for...in 循环中,为什么使用“Contacts”构造函数创建新的“obj”对象有效?似乎每次循环时我都需要一个不同的名称,这样我就不会覆盖我之前创建过的对象。如果这是正确的,如果我提前不知道联系人的数量或价值,我该怎么做?另外,为什么控制台日志中任何对象的标题都不是obj?我是否对创建对象实例的含义感到困惑?这些实例的名称不重要吗?
为什么所有属性都未定义?是否应该从临时“i”变量中引用属性?
从未知的总数据条目中创建对象似乎非常重要。不幸的是,像 Codecademy 这样的地方在这方面做得不够。你总是用他们给你的硬编码名称手动创建对象的新实例。但是如果有两个同名的会怎样呢?
非常感谢您在这方面提供的任何帮助。不要阻止告诉我我可能正在做的其他愚蠢的事情。
这是控制台屏幕截图的链接 - http://i.imgur.com/TK4dtfV.png
var TestApp = {};
// my data... taken from wherever
TestApp.jsonContacts = {
contact1: {
name: "Ethan",
age: 24
},
contact2: {
name: "Evan",
age: 30
},
contact3: {
name: "Paul",
age: 9000
}
};
// I know this is silly, just let me pretend...
TestApp.jsonStrung = JSON.stringify(TestApp.jsonContacts);
TestApp.globalContactList = [];
// my constructor function to create instances of Contact
TestApp.Contact = function(name, age){
this.name = name;
this.age = age;
TestApp.globalContactList.push(this);
};
// where I'm taking data and creating new Contact objects
TestApp.instantiateObjects = function(){
// I know this is silly, just let me pretend...
var jsonUnstrung = JSON.parse(TestApp.jsonStrung);
// I think I'm looping through the first set of objects sitting in jsonContacts
for (var i in jsonUnstrung) {
var obj = new TestApp.Contact(i.name, i.age);
console.log(obj);
}
console.log(TestApp.globalContactList);
};
TestApp.instantiateObjects();
【问题讨论】:
标签: javascript json object new-operator addressbook