将对象推入数组的Javascript方法

11

嘿,我目前在尝试让这个代码工作时遇到了一些问题。这是一个示例代码,我正在尝试从中获取帮助。许多内容已经删除,但这里仍然包含问题。我有一个对象user和一个数组player。我正试图在这里创建包含玩家的数组:

function user(name, level, job, apparel)
{
 this.name = name;
 this.state = "alive";
 this.level = level;
 this.job = job;
 this.apparel = apparel;
}

player = new array();
player.push(new user("Main Player", 1, 1, "naked"));
document.write(player[0].name);

但是它不起作用,没有任何东西被回显。我做错了什么?


2
正如所有的答案所指出的,你写成了 Array 而不是 array。你也可以使用 player = []; 这样的语法。另外,而且这很重要,你的 user 函数是个对象定义,所以应该被称为 User 而不是 user(当然这不是问题所在)。 - Dan Rosenstark
4个回答

22

你的代码中有一个拼写错误。

更改

player = new array();
player = new Array();

15
更好的方式是使用数组字面量(更快):var player = []; - KooiInc

11

我会这样做

player = [];

取代

player = new array();

作为一个健康检查,请尝试执行以下操作:

document.write("Name: " + player[0].name);

player[] = new user("TehMeanie", 1, 1, "naked"); 这行代码为什么不能运行? - Anonymous
不是这样的。player = []; player.push(new user("TehMeanie", 1, 1, "naked")); - rahul
player[0] = new user("TehMeanie", 1, 1, "naked"); 可以正常工作。 - KooiInc

7

您遇到了一个错误。不是array,而是Array


2
JavaScript是区分大小写的:http://wiki.answers.com/Q/Is_javascript_case_sensitive - nc3b

1
我尝试了这个,它有效:

player = [{}];

代替:

而非:

player = new Array();

player = [{}] 不是在初始化一个空数组,而是在初始化一个包含一个空对象的数组。它们不是同一个东西。 - Divyanth Jayaraj

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接