Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [JavaScript] Obiekty
zegarek84
post
Post #1





Grupa: Zarejestrowani
Postów: 1 332
Pomógł: 294
Dołączył: 12.10.2008
Skąd: Olkusz

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


tak trochu się zastanawiałem i nie wiem czy są jakieś różnice w wydajności, bądź ważniejsze w sposobie rozwiązywania problemów niuanse... np. w necie większość konstrukcji obiektów wygląda w ten sposób:
[JAVASCRIPT] pobierz, plaintext
  1. java script:
  2. function obiekt($f)
  3. {
  4. var $c=$f||1;
  5. delete($f);
  6. alert($c);
  7. this.bzdura=function(b){$c*=b;};
  8. this.cos=function(){alert($c);};
  9. }
  10. b=new obiekt;
  11. g=new obiekt(4);
  12. b.bzdura(3);
  13. g.bzdura(10);
  14. g.cos();
  15. b.cos();
  16. void(0);
[JAVASCRIPT] pobierz, plaintext

no i właśnie a pro po publicznych metod i publicznych zmiennych odnośnie tego this.cokolwiek - akurat mi się nie wygodnie pisze, jakoś wolę taką konstrukcję bez this.cokolwiek i bez pisania new podczas tworzenia nowego obiektu:
[JAVASCRIPT] pobierz, plaintext
  1. java script:
  2. function obiekt($f)
  3. {
  4. var $c=$f||1;
  5. delete($f);
  6. alert($c);
  7. return {
  8. bzdura:function(b){$c*=b;},
  9. cos:function(){alert($c);}
  10. };
  11. }
  12. b=obiekt();
  13. g=obiekt(4);
  14. b.bzdura(3);
  15. g.bzdura(10);
  16. g.cos();
  17. b.cos();
  18. void(0);
[JAVASCRIPT] pobierz, plaintext

i tu moje pytanie - jak jest poprawniej, czy są jakieś znaczące tutaj różnice??...
może tak przy okazji jakieś linki do trudniejszych artykułów a ciekawszych z niuansami

z góry dziękuje ...

sorki za podbicie ale znalazłem jeden motyw w tym co ja używam a ktoś mógłby uznać to za wadę - brak zdefiniowanego instanceof - więc odrazu rozwiązanie na instance of without new (IMG:style_emoticons/default/winksmiley.jpg) - tu już może spowolnienie lekkie - na pętlę nie chce mi się sprawdzać - choć raczej nie powinno być gdyż jest zwrócona tylko referencja... a jak jest sporo metod publicznych to jednak wolę pisać jak w poście wyżej drugi przykład zamiast dla każdej metody poprzedzać this...

instance of without new (przykład na zdefiniowanie instancji):
Kod
java script:g=function(){};function c(){var ll=22; return {k:function(){return ll;}}};function a(ob,cialo){ob.prototype=cialo;return new ob;};h=a(g,c());alert(h instanceof g);void(0)

ps. aby instancja zosttała zwrócona to funkcja do której przyrównujemy czy istnieje instancja musi być w zasięgu w miejscu gdzie ją sprawdzamy...

dalej szukam jakichś za i przeciw który sposób lepszy - lub niech ktoś napisze, że to jeden h* (IMG:style_emoticons/default/winksmiley.jpg)

lub jeśli ktoś chce pisać new a nie chce co chwila pisać this wewnątrz gdyż woli notację json:
Kod
java script:g=function(){};function c(){var ll=22; return {k:function(){return ll;}}};g.prototype=c();h=new g;alert(h instanceof g);void(0)


Ten post edytował zegarek84 6.01.2010, 16:40:15
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: 25.09.2025 - 16:35