如何在构造函数中将对象添加到数组中

时间:2014-07-27 01:30:15

标签: javascript html arrays oop constructor

我在JavaScript中编程,我创建了一个名为users的数组和一个用户对象的构造函数。每次创建新对象时我都想将它添加到数组中。

var users = [];


function user(username, password){
    this.username = username;
    this.password = password;
    users[users.length-1] = this;
};

var joe = new user('Joe', "joe100");

上述方式似乎不起作用。如何在构造函数中将对象添加到数组?

2 个答案:

答案 0 :(得分:2)

“users”是一个空数组,这意味着当你点击构造函数时它的长度是0。因此,将“this”分配给length-1意味着将“this”分配给“-1”索引 ...这就是为什么它不起作用....摆脱-1,或者...

使用javascript array.push()函数代替添加到您的数组

查看W3Schools网站上的示例... Array#push

答案 1 :(得分:1)

从代码中删除-1,它看起来就像一个

var users = [];


function user(username, password){
    this.username = username;
    this.password = password;
    users[users.length] = this;
};

var joe = new user('Joe', "joe100");

您的HTML演示代码示例

<!DOCTYPE html>
<html>
<body>

<p id="demo"></p>

<script>
var users = [];


function user(username, password){
    this.username = username;
    this.password = password;
    users[users.length] = this;
};

var joe = new user('Joe', "joe100"),l = new user('ll', "ll99");

document.getElementById("demo").innerHTML = users[0].username+"   ---  "+users[0].password+"<br/>"+users[1].username+"   ---  "+users[1].password;
</script>

</body>
</html>

我认为这会对你有帮助。