![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 9 Pomógł: 0 Dołączył: 16.03.2006 Ostrzeżenie: (0%) ![]() ![]() |
Witam,
Porwałem się z motyka na słońce mając jquery i code igniter u boku - piszę aplikację do gry w szachy przez przeglądarkę. Jestem w fazie początkowej - bierki już mogą się ruszać po przeciągnięciu (prawie ![]() 1. Jak stworzyć funkcję w klasie (w JS to oczywiście funkcja), która będzie miała rolę konstruktora w PHP? 2. Jak stworzyć relację "extends"? |
|
|
![]() |
![]()
Post
#2
|
|
![]() Grupa: Zarejestrowani Postów: 690 Pomógł: 92 Dołączył: 6.02.2011 Ostrzeżenie: (0%) ![]() ![]() |
http://kurs.browsehappy.pl/JavaScript/Klasy
http://kurs.browsehappy.pl/JavaScript/Dziedziczenie Taa, nie wiedziałem, że wujek Google jest aż taaak nieprzyjazny... |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 1 332 Pomógł: 294 Dołączył: 12.10.2008 Skąd: Olkusz Ostrzeżenie: (0%) ![]() ![]() |
Details of the object model - tu w dokumentacji mozilli jest to dosyć w miarę opisane...
w js w zasadzie wszystko jest obiektem - nawet zwykła funkcja... i funkcja tutaj jest funkcją/metodą/konstruktorem/obiektem... generalnie by parent konstruktora wywołać w kontekście this potomnej "klasy" to możesz albo funkcję rodzica przypisać do jakiejś zmiennej/metody w kontekście this po czym tą zmienną wykonać bądź skorzystać z podstawowych funkcji jak apply i call (poczytaj na dokumentacji mozilli)... rozszerzenie najlepiej i najwydajniej robić przez utworzenie obiektu klasy rodzica w prototype klasy potomnej - często nie chce się od razu wywoływać konstruktora klasy rodzica do prototype i są na to różne tricki jak np. ten napisany z palca:
ogólnie musisz poeksperymentować by skumać czaczę ;] - ale js jest super prosty, fajne są domknięcia i wiele tricków - choć daaawno się już nim jakoś nie bawiłem ps. w js musisz zrozumieć zasięg zmiennych - jeśli tego nie będziesz rozumiał i będziesz wstawiał gdzie popadnie definicję zmiennych przez var to nie uzyskasz kilku ciekawych efektów - ale z kolei jeśli w ogóle nie rozumiesz co się dzieje, to wstawiaj na początek gdzie popadnie definicję var gdyż inaczej sobie ponadpisujesz zmienne w globalnym scope a te nie zdefiniowane zdefiniujesz w globalnym scope czyli w obiekcie window... -------------------- Jeśli twoja ręka rusza do przodu powstrzymaj swój gniew; gdy wyprzedza cię twój gniew - wycofaj rękę.
|
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 9 Pomógł: 0 Dołączył: 16.03.2006 Ostrzeżenie: (0%) ![]() ![]() |
Dzięki chłopaki!
Dopiero teraz miałem chwilę, żeby na to spojrzeć. zegarek84: trochę już w JS (bardziej w jQuery) pisałem, obczajam nieco temat (nie zabierał bym się za szachy:). Sprawa z klasami jest pokopana w JS. Po kilku próbach doszedłem do tego jak tworzyć obiekt z danym zestawem zmiennych (to akurat nic trudnego...) CODE Object.prototype.parent = function (supClass,x,y) {
tempObj = new supClass(x,y); for (property in tempObj) { this[property] = tempObj[property]; } }; function Bazowa(x,y) { this.value = x; this.metoda = function () { return this.value; } } function Pochodna(x,y) { this.parent(Bazowa,x,y); } foo = new Pochodna(34,23); alert(foo.metoda()); |
|
|
![]() ![]() |
![]() |
Aktualny czas: 20.08.2025 - 18:52 |