我在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");
上述方式似乎不起作用。如何在构造函数中将对象添加到数组?
答案 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>
我认为这会对你有帮助。