[JavaScript] pomoc w rozwiązaniu ćwiczenia

0

Wtam, jestem tu po raz pierwszy, bo i od niedawna uczę się programować. Chciałbym prosić Was o pomoc w rozwiązaniu zadania, z którym sam nie po trafię się uporać. Z góry mówię, że nie oczekuję samego rozwiązania, ale naprowadzenia mnie na właściwą ścieżkę lub wskazanie punktu, w którym popełniam błąd. Pozwólcie że przejdę do rzeczy:)

Zadanie wygląda tak:
Należy wyobrazić sobie, że nie istnieje konstruktor String() i następnie stworzyć swój własny konstruktor, którego działanie będzie maksymalnie podobne do działania String(). Nie wolno używać również wbudowanych metod i pól tego obiektu.
Stworzyłem sobie więc następujący kod:

function MojString(a) {
    this.toString = function() {
        t = []
        for (i = 0, len = a.length; i < len; i++) {
            t[i] = a[i]
        }
    return t.join("")
    }
    
    this.length = (function() {
        t = []
        for (i = 0, len = a.length; i < len; i++) {
            t[i] = a[i]
        }
    return t.length
    })()
    
    /*zastępczy (i prostszy) kod dla pola length:
    this.length = a.length*/
    
}

var s = new MojString("hello")

Idźmy dalej:
jak widać - stworzyłem nowy obiekt s; następnie zacząłem sprawdzać, czy działają na nim następujace pola i metody: length, toString() (zgodnie z poleceniem zadania). Działają, jednak przy sprawdzeniu pola length dzieje się coś dziwnego: pole rzeczywiście zwraca wartość 5 (s.length), jednak gdy chcę sprawdzić poszczególne elementy obiektu za pomocą indeksów (s[0], s[1], s[2], s[3], s[4]) konsola zwraca mi undefined. I w tym miejscu się poddaję...

0

takie zadania są strasznie głupie i tutaj nie za bardzo w ogóle o co chodzi autorowi - to zadanie uczy rozwiązywania zagadek typu "co miał na myśli autor zadania" zamiast czegokolwiek innego

udawanie że czegoś nie ma chociaż jest... ale tylko częściowo bo niektóre rzeczy jednak są bo bez nich by się nie udało udawać że pozostałych nie ma :|

żeby się odwoływać do s[0] musisz wewnątrz przypisać coś do this[0] a tego nie robisz

poza tym wydaje mi się że w tym zadaniu bardziej chodzi o napisanie od nowa wszystkich funkcji stąd: http://www.w3schools.com/jsref/jsref_obj_string.asp
i nie używać choćby metody .join() a to robisz
(choć mogę się mylić)

a ten length to Ci się policzy tylko raz - bez sensu w ogóle to opakowywać w funkcję

1 użytkowników online, w tym zalogowanych: 0, gości: 1