【问题标题】:Javascript pushing object into arrayJavascript将对象推入数组
【发布时间】:2011-02-13 07:59:15
【问题描述】:

嘿,我目前在尝试使其正常工作时遇到了麻烦。这是我正在尝试的示例代码。已经取出了很多,但这应该仍然包含问题。我有一个对象,用户和一个数组,播放器。我正在尝试与其中的玩家一起制作一个数组,在这里:

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);

但它不起作用,没有任何回应。我做错了什么?

【问题讨论】:

  • 正如所有答案所指出的,您写的是Array 而不是array。你也可以使用player = []; 还有,这很重要,你的用户函数是一个对象定义,所以它应该被称为用户而不是用户(这当然不是问题)。

标签: javascript oop arrays object push


【解决方案1】:

您的代码中有错字。

改变

player = new array();

player = new Array();

【讨论】:

  • 更好:使用数组文字(更快):var player = [];
【解决方案2】:

我愿意

player = [];

而不是

player = new array();

作为健全性检查,尝试这样做:

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

【讨论】:

  • player[] = new user("TehMeanie", 1, 1, "naked");为什么那行不通?
  • 不是这样的。 player = []; player.push(new user("TehMeanie", 1, 1, "naked"));
  • player[0] = new user("TehMeanie", 1, 1, "naked");虽然会工作
【解决方案3】:

好吧,你有一个错误。不是array,而是Array

【讨论】:

【解决方案4】:

我试过这个并且成功了:

player = [{}];

代替:

player = new Array();

【讨论】:

  • player = [{}] 未初始化空数组。它正在初始化一个包含 1 个项目的数组,这是一个空对象。它们不一样。
猜你喜欢
  • 2021-05-06
  • 1970-01-01
  • 2018-11-08
  • 2015-10-19
  • 2017-12-05
  • 2023-03-14
  • 1970-01-01
  • 2014-08-10
相关资源
最近更新 更多