Javascript 如何使用for循环在类中创建对象?
我正在试验基于数组参数在类中创建属性。你怎么能做到这一点 请查看以下内容,以便您了解我正在尝试做什么:Javascript 如何使用for循环在类中创建对象?,javascript,Javascript,我正在试验基于数组参数在类中创建属性。你怎么能做到这一点 请查看以下内容,以便您了解我正在尝试做什么: function Person(colors) { this.color = (function () { this.color = new Object(); for (q=0; q<colors.length; ++q) { var r; switch (q) {
function Person(colors) {
this.color = (function () {
this.color = new Object();
for (q=0; q<colors.length; ++q) {
var r;
switch (q) {
case 0: r = "favorite"; break;
case 1: r = "likes"; break;
case 2: r = "hates"; break;
default: r = q; break;
}
this.color.r = colors[q];
}
}).call(this);
}
var people = {
george: new Person(["blue", "yellow", "green"]),
bob: new Person(["green", "purple", "white"])
};
console.log(people.george.color.favorite);
this.color = {
favorite: colors[0],
likes: colors[1],
hates: colors[2]
};
使用for循环。有什么想法吗
顺便说一句,我不确定this.color=newobject();“在this.color中的声明实际上是有效的,这只是我尝试过的。你还能怎么做呢?我不知道你为什么要这么做,这似乎不是个好主意 代码中的错误在于没有使用括号表示法 更改此项:
this.color.r = colors[q];
为此:
this.color[r] = colors[q];
括号表示“访问名为r的属性”,而不是“访问名为r的属性”
<>我建议您考虑使用JavaScript文字对象表示法。您的整个代码可以重新分解为:
var people = {
george:{
color:{favorite:"blue",likes:"yellow",hates:"green"}
},
bob:{
color:{favorite:"green",likes:"purple",hates:"white"}
}
};
“使用for循环”-有什么实际原因吗?为什么不把一个对象作为参数传递?@Korey,解决这个问题运气好吗?你最后做了什么“?