为什么这个功能打印“;未定义的未定义的“;作为联系人名称,添加“新对象”
Why does this function print "undefined undefined" as a contact name, added with “new Object”?
我正在Codecademy学习JavaScript课程。在本练习中,我们将创建函数add
,该函数将向contacts
数组中添加一个人,然后使用提示从用户那里获取信息,然后调用函数list
将contacts
数组中的所有人打印到控制台。
当我运行下面的代码时,它会列出contacts
数组中的两个现有人员,但随后会为我试图通过提示添加的人员打印"undefined undefined"
。然而,当我打印contacts
的长度时,上面写着3
,所以添加了一个人。
如有任何帮助,我们将不胜感激。
var bob = {
firstName: "Bob",
lastName: "Jones",
phoneNumber: "(650) 777 - 7777",
email: "bob.jones@example.com"
};
var mary = {
firstName: "Mary",
lastName: "Johnson",
phoneNumber: "(650) 888 - 8888",
email: "mary.johnson@example.com"
};
var contacts = new Array(bob, mary);
function printPerson(person) {
console.log(person.firstName + " " + person.lastName);
}
function list() {
var length = contacts.length;
var i;
for (i = 0; i < length; i++) {
printPerson(contacts[i]);
}
}
/*Create a search function
then call it passing "Jones"*/
var search = function(lastName) {
var number = contacts.length;
for (i = 0; i < number; i++) {
if (contacts[i].lastName === lastName) {
printPerson(contacts[i]);
}
}
};
var add = function(firstName, lastName, email, telephone) {
contacts[contacts.length] = new Object(firstName, lastName, email, telephone);
};
var firstName = prompt("What is your first name");
var lastName = prompt("What is your last name");
var email = prompt("What is your email");
var telephone = prompt("What is your phone number");
add(firstName, lastName, email, telephone);
list();
要创建一个具有属性的新对象,必须为每个属性指定属性名称和属性值。您只是将一个值列表传递给new Object()
构造函数,该构造函数不生成您想要的对象类型。
有几种方法可以创建具有属性的新对象,但在这种情况下,只使用文本对象声明格式{name1: val1, name2: val2}
可能是最简单的。要做到这一点,请更改此代码:
var add = function(firstName, lastName, email, telephone){
contacts[contacts.length] = new Object(firstName, lastName, email, telephone);
};
到此:
var add = function(firstName, lastName, email, telephone){
contacts[contacts.length] = {firstName: firstName, lastName: lastName, email: email, phoneNumber: telephone};
};
它在这里工作:http://jsfiddle.net/jfriend00/Ea7B5/
相关文章:
- 从模块函数返回未定义的对象
- 未捕获的类型错误: 无法读取未定义的 - 对象的属性
- 未定义 RequireJS 对象
- 未检索到输入字段的值:未定义的对象
- 未定义Javascript对象Class错误
- 如何在不获得引用错误的情况下将不存在的JavaScript对象与未定义的对象进行比较
- Javascript - 在未定义的对象上调用 new
- 如何删除未定义的对象错误并根据位置重定向用户
- 无论如何,在Visual Studio智能感知中定义一个未定义的对象
- 余烬数据断言失败:无法对未定义的对象使用“查询”调用 get
- 角度控制器/工厂返回未定义的对象
- 无法读取未定义的对象
- 对于循环添加被读取为未定义的对象
- javascript:未定义获取对象
- 汇总.js:外部依赖项中未定义的对象
- 即使未调用 JQuery 未定义的对象属性仍会导致错误
- getJSON JavaScript 函数返回未定义的对象
- 帆查询不断呈现未定义的对象
- 未定义的对象值和NaN
- 未定义Javascript对象