Notatka: Można też inaczej: http://kurs.browsehappy.pl/JavaScript/Dziedziczenie
Ostatnio mam takie ciekawy pomysły
Co by było, jakby tak zrobić dziedziczenie w JS?
Myślałem… Myślałem…
…i wymyślałem. ![]()
W głowie ułożyłem sobie ot mniej więcej tak:
function object1() {
this.test1 = "asdf";
}
function object2() {
this = new object1();
this.test2 = "asdf2.0";
}
var test = new object2();
console.info(test);
No niby powinno działać, ale nie działa – invalid assignment left-hand side.
No i czemu tu się dziwić, rzeczywiście – this się nie da przypisać. Czyli na pewno nie będziemy korzystać z this, tylko zmienimy sobie na…. th?
Więc dalej zacząłem pisać i wyszło mi coś takiego:
function object1() {
//Pierwszy obiekt - dziedziczymy po Object..
//..dlatego można również:
//th = new Object();
th = {};
//jednak tak jest krócej ;]
//kilka zmiennych testowych
th.lastObjectName = 'object1';
th.object1 = 'yes';
return th;
}
function object2() {
// Tym razem dziedziczymy po object1.
th = new object1();
// i znowu testy.
th.lastObjectName = 'object2';
th.object2 = 'yes';
return th;
}
function object3() {
// Dziedziczymy po object2 (zaraz koniec czytelniku :p)
th = new object2();
th.lastObjectName = 'object3';
th.object3 = 'yes';
return th;
}
var t = new object3();
alert("lastObjectName: "+t.lastObjectName+
"\ntypeOf: "+typeof(t)+
"\nobject1: "+t.object1+
"\nobject2: "+t.object2+
"\nobject3: "+t.object3);
//lub, jeżeli masz FireBug'a
//console.info(t);
I, o dziwo, działa ![]()
Jestem ciekawy co wy o tym myślicie?
Wypowiedzcie się

http://kurs.browsehappy.pl/JavaScript/Dziedziczenie
Rzeczywiście, nie widziałem tego.
Ciekawe.. Jednak nie wymysliłem tego pierwszy
Nie jest to dziedziczenie można to nazwać pseudo i to nie bardzo. Jest to po prostu nowa instancja klasy w innej klasie
Sensem dziedziczenia jest przede wszystkim to, aby z instancji klasy B, ktora jest pochodna klasy A, mozna było wywolac metody klasy A i w razie potrzeby zastepowac je nowymi. Dlatego podany tutaj sposob rozwiazuje problem dziedziczenia.
Sposob podany na stronie http://kurs.browsehappy.pl/JavaScript/Dziedziczenie jest bledny. Wezmy klase A ze zmienna s. Dziedziczymy po niej klase B. Tworzymy dwie zmienne klasy B: b1 i b2. do b1.s przypisujemy wartosc. Kiedy wyswietlimy b2.s okaze sie, ze ma ona wartosc, ktora wlasnie przypisalismy do b1.
Wysililem sie nad tym komentarzem, poniewaz autor podal dobry sposob na dziedziczenie, a poprzednie komentarze nie dosc, ze nie maja racji, to sa uszczypliwe. Na prawie kazdym portalu programistycznym spotykam sie z czyms takim i wkur… mnie to, ze ludzie mojego fachu to takie male, uszczypliwe menty.