Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [JavaScript]Prosze o pomoc w zrozumieniu obiektów, Kod z kursu mi nie działa ale zmodyfikowany przeze mnie tak!
adbacz
post
Post #1





Grupa: Zarejestrowani
Postów: 532
Pomógł: 24
Dołączył: 15.04.2011
Skąd: Kalisz

Ostrzeżenie: (0%)
-----


Własnie rozpoczałem naukę JavaScript. Kurs z neta dostępny pod stronką: Poradnik Webmastera.

Na podanej stronce jest na jednym z listingów coś takiego:

Kod
function Punkt_toString()
{
    return "(" + this.x + "," + this.y + ")";
}

function Punkt(x, y)
{
    this.x = x;
    this.y = y;
    this.toString = Punkt_toString;
}

var p = new Punkt(10, 20);
alert("Współrzędne punktu to " + p);


Niestety nie chce mi to działać. Zacząłem sobie analizowac kod no i zmodyfikowałem troszke przy okazji dodałem coś nowego. Chodzi o to, że to wyżej nie chce działać, ale to moje już tak. Obkomentowane zmienione elementy:
Kod
//Dodana właściwość param w parametrze funkcji oraz później zamiast this.x jesy param.x
function _punkt_ToString(param) {
  return "Współrzędne to (" + param.x + ", " + param.y + ")";
}

function WspolrzedneWypisz(x, y) {
  this.x = x;
  this.y = y;
  
  //Tutaj wysyłam do wunkcji this. Nie wiem czy to dobrze, ale wszystko działa więc chyba dobrze
  //W oryginalnym kodzie jest this.ToString = _punkt_ToString; więc to tak jakby w ogóle nie było funkcji ale tylko pole.
  this.ToString = _punkt_ToString(this);
  
  this.Alertuj = function() {
    alert(this.ToString);
  }
  this.Wypisz = function() {
    document.write(this.ToString);
  }
}


No i później na stronie mam takie coś:
  1. <script type="text/javascript">
  2. var Punkt = new WspolrzedneWypisz(2, 2);
  3. Punkt.Wypisz();
  4. <a href="java script:Punkt.Alertuj()">Alertuj</a>


Mogę liczyć na czyjś głos w tej sprawie dlaczego jest tak a nie inaczej?

Ten post edytował adbacz 4.09.2011, 10:50:39
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
bulias
post
Post #2





Grupa: Zarejestrowani
Postów: 34
Pomógł: 2
Dołączył: 6.11.2005

Ostrzeżenie: (0%)
-----


Nie wiem czy miałeś kiedyś czynienia ze wskaźnikami na funkcje np. C++. To można sobie kojarzyć właśnie w z takimi wskaźnikami na funkcje (IMG:style_emoticons/default/wink.gif) a jeszcze prościej jako że w JS funkcja jest obiektem to tak jakbyś przypisywał wskaźnikowi na co ma wskazywać czyli w tym wypadku na funkcje. Dodając nawiasy od razu ją wywołujesz

Cytat
można powiedzieć że wszytko tam jest "funkcją"
Ja bym powiedział że obiektem.
  1. var bar = new Function ('jeden', 'dwa', 'return jeden + dwa;');

wywołanie:
  1. bar(1,2)


Ten post edytował bulias 4.09.2011, 12:48:14
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 11.10.2025 - 16:39