Mam raczej banalny problem w JavaScript, otóż potrzebuje stworzyć kilka obiektów w pętli a następnie wywoływać metody na tych obiektach. Poniżej napisałem kod który powinien przybliżyć to co mam na myśli.
<p id="pTekst"></p>
<script>
var mezczyzni = ["Mieczyslaw", "Wojciech", "Andrzej"];
function osoba(imie) {
this.imie = imie;
this.zmienImie = function (name) {
this.imie = name;
}
this.pokaz = function (){
document.getElementById("pTekst").innerHTML = this.imie + ' <button onClick="mezczyzna.zmienImie(\'Marek\');mezczyzna.pokaz()">Zmien imie na Marek</button>'
}
}
for (i = 0; i < mezczyzni.length; i++) {
var mezczyzna = new osoba(mezczyzni[i]);
mezczyzna.pokaz();
}
</script>
Jak widać w powyższym kodzie w pętli tworzone są obiekty o takiej samej nazwie, więc tak naprawdę się nadpisują i koniec końców mam dostęp tylko do ostatniego obiektu.
Wiem, że ten problem można ominąć dynamicznym tworzeniem nazw obiektów, ale nie wydaje mi się to profesjonalnym rozwiązaniem, dlatego chciałbym zapytać jak inaczej to rozwiązać?
Pozdrawiam i proszę o pomoc