Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Sposób zapisu obiektów
Forum PHP.pl > Forum > Po stronie przeglądarki > JavaScript
webdice
Witam, obiekty w JavaScript mogę zapisać na dwa różne sposoby.

Pierwszy sposób:

Kod
Object =
{
  Version: '1.0',

  setVersion: function (Version)
  {
    this.Version = Version;
  },

  getVersion: function ()
  {
    return this.Version;
  }
}


Oraz drugi sposób:

Kod
var Object = function ()
{
  this.Version = '1.0';

  this.setVersion = function (Version)
  {
    this.Version = Version;
  }

  this.getVersion = function ()
  {
    return this.Version;
  }
}


Jaki są zalety, jak i wady korzystania z danego rozwiązania? Kolejne pytanie, czym jest this[0] w JavaScript?
lord_t
Kod
Object1 =
{
  Version: '1.0',

  setVersion: function (Version)
  {
    this.Version = Version;
  },

  getVersion: function ()
  {
    return this.Version;
  }
}

var Object2 = function ()
{
  this.Version = '1.0';

  this.setVersion = function (Version)
  {
    this.Version = Version;
  }

  this.getVersion = function ()
  {
    return this.Version;
  }
}

//alert(typeof Object1); // -> object (obiekt,instancja nienazwanej klasy)
//alert(typeof Object2); // -> function (klasa/konstruktor)

//NIEPRAWIDLOWE - Object1 nie jest konstruktorem
//var o1=new Object1();

//NIEPRAWIDLOWE - Object1 nie jest konstruktorem
//var o11=new Object1;

//OK - otrzymujemy obiekt klasy Object2
var o2=new Object2();
//alert(o2.Version);

//OK - otrzymujemy obiekt klasy Object2
var o22=new Object2;
//alert(o22.Version);

W Object2 możesz wywołać inną funkcję, w Object1 tego nie zrobisz.
Nie jestem w 100% przekonany, ale w Object1 nie uda Ci się też stworzyć prywatnego atrybutu lub metody.


Co do wykorzystania this[0] to widzę tylko jedno zastosowanie i możliwość użycia:
mianowicie w tablicy; do odwołania się do pierwszego elementu ze środka tej tablicy:
Kod
Array.prototype.wyswietlPierwszy=function(){ alert(this[0]); }
d    =new Array();
d[0]=45;
d.wyswietlPierwszy();
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.