Я экспериментирую с созданием свойств в классе на основе аргумента массива. Как вы можете это сделать?Как создать объект внутри класса с помощью цикла for?
Пожалуйста, обратитесь к следующему, так что вы можете увидеть, что я пытаюсь сделать:
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]
};
используя для цикла. Есть идеи?
Кстати, я не уверен, указывая «this.color = new Object();» внутри this.color действительно действительно, это просто то, что я пытался. Как еще вы можете это сделать?
«использование петли» --- любая практическая причина для этого? – zerkms
Почему бы просто не передать объект в качестве параметра? – elclanrs
@Korey, любая удача, решающая это? Что вы в итоге сделали? –