Nie sądzisz, że to takie trochę przęgiecie, przcież masz dostęp do tego pola z innego obiektu. (Pamiętaj o DRY!)
this.consonant = _consonant;
this.consonantLength = this.consonant.length;
Tak jak commander wspominał, name robi za dużo (czy w świecie rzeczywistym imię potrafi się generować - jest jego właściwością. No nie.. imię to imię... powinno stanowić najprotszą interpretacje obiektową z ograniczonymi prostymi metodami (gettery./settery), inaczej mówiąc jest modelem. Obecnym miejscu, cieżko by było ją rozbudować (zasada SOLID).