Primek_1980
Primek_1980
#javascript
B = {}
A = {}

A.prototype = {
this.show: function ()....
}

B.prototype = {
this.show: function ()....
}

B.prototype = Object.create(A.prototype);
A.prototype.constructor = A;
B.prototype.constructor = B;

var obj = new B();

obj.show()

hej, prośba do zaawansowanych programistów - mój interpreter javascript nie jest przeglądarkowy - stary i nie ma połowy funkcji.

jeśli dobrze rozumiem funkcja show wywołana z obiektu obj - powinna odpalić funkcje najpierw wewnątrz obiektu (no ale jej nie znajduje), potem w prototype B, a następnie iść do prototypu A - dobrze rozumiem?

u mnie od razu odpala sie z prototypu A :( co źle robie?

chce mieć np. 5 funkcji w A.prototype a w B.prototype mieć 2 funkcje z pod tymi samymi nazwami.
  • Najlepsze
  • Wszystkie komentarze
Marmite
@Primek_1980: w momencie kiedy robisz B.prototype = Object.create(A.prototype) nadpisujesz wcześniejszy B.prototype w którym dodałeś inną metodę show - zamień kolejność i będzie śmigać
Marmite
@Primek_1980: inna sprawa że nie wiem co to za interpreter masz, ale ten kod nie jest poprawny. Tu napisałeś że A i B to obiekty, a żeby to zadziałało muszą być funkcjami. Tak samo ten zapis
A.prototype = {
this.show: function ()....
}
też nie jest poprawny
Primek_1980
Primek_1980
Primek_1980 Autor
0
@Marmite: no właśnie to show z b. Prototype mam później zrobione
Primek_1980
Primek_1980
Primek_1980 Autor
0
@Marmite: A i B to konstruktory, przepraszam
Marmite
no właśnie to show z b. Prototype mam później zrobione

@Primek_1980: to wrzuć kod taki jaki masz, przecież nie mam szklanej kuli. Bo ogólnie jeśli twój wygląda tak jak tu:
https://codesandbox.io/s/sleepy-morning-gcsz0e?file=/src/index.js
to będzie działać, zresztą możesz zobaczyć w konsoli