Aktywne Wpisy
jankochanowski +326

g0blacK +398
Są takie twarze, które po prostu denerwują. Sam fizys sprawi, że człowiek się denerwuje i aż się w nim gotuje. Też tak macie? Jeśli tak, to zapraszam do zabawy, Ja zaczynam #glupiewykopowezabawy #takaprawda #niepopularnaopinia
źródło: 000HLE5N9WUKCYS3-C122-F4
Pobierz



var data = {
votes: {
total: function() {
return this.votes.men + this.votes.women;
},
men: function() {
return this.voters.men.length;
},
women: function() {
return this.voters.women.length;
}
}
data.votes.total zwraca następujący tekst:
function () { return this.voters.men.length; }function () { return this.voters.women.length; }
Działa, kiedy zawartość metody total ustawię na:
return this.voters.men.length + this.voters.women.length + this.voters.unknown.length;
czyli zawartość tych pomnijeszych metod, ale czy to jesyne rozwiązanie?
#javascript
Komentarz usunięty przez autora
U mnie działa tylko przy pierwszym załadowaniu strony. Gdy kliknę run to już nic się nie wyświetla a konsola rzuca błędem.
Gdy odkomentuję 5., a zakomentuję 6. linię wszystko działa.
Dlaczego więc gdy korzystam z linii 6. nie mogę odwołać się w obiekcie votes do metod w tym samym obiekcie, to jest this.votes.men itd?
this.men() + this.women()
zamiast
this.votes.men() + this.votes.women()
https://codeshare.io/CByB4
Poza tym, w metodzie votes.men dałem console.log(this); i zwracany jest cały obiekt data. Zgodnie z tym co mówisz powinien zostać zwrócony obiekt votes. A tak nie jest. Zresztą konsola rzuca że this.men() is not a function, więc już nic nie rozumiem.