Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [JS] Problem z klasą w JS
Forum PHP.pl > Forum > Po stronie przeglądarki
Skie
Witam, mam pewien problem z klasami z JS. Żeby najlepiej wytłumaczyć o co mi chodzi, napiszę za pomocą PHP to co chce w JS uzyskać:

  1. <?php
  2. function set($action, $param) {
  3.    $this -> {$action} = $param;
  4.    return $this;
  5. }
  6. ?>


Tylko, że zupełnie nie wiem jak to zrobić w JS:

Kod
klasa = {
    zmienna1: false,
    zmienna2: false,
    zmienna3: false,

    set: function(action, param) {
        // kod
        return this;
    }
};


Chodzi mi o to, zeby wywolanie czegos takiego:

klasa.set('zmienna1', '20');

ustawila metode zmienna1 z false na 20.

Czy może mi ktoś pomóc z tym?
lord_t
Ja bym to zrobił tak: (wstawilem jako php zeby się kod nie powycinało spacji)
  1. <?php ?>
  2. <html>
  3. <head>
  4.  
  5. <script type="text/javascript">
  6.  
  7. klasa =  function(){
  8.    this.zmienna1=false;
  9.    this.zmienna2=false;
  10.    this.zmienna3=false;
  11.  
  12.    this.set=function(action, param) {
  13.        eval("this."+action+"="+param);
  14.    }
  15. };
  16.  
  17. function x(){
  18. k=new klasa()
  19.    k.set("zmienna1",27);
  20.    alert(k.zmienna1);
  21. }
  22.  
  23. </script>
  24. </head>
  25. <body>
  26.  
  27. <div onclick="x()">click</div>
  28.  
  29. </body>
  30. </html>
erix
eval? A czy nie wiadomo, że każdy do każdego obiektu w JS można się odwoływać jak do tablicy?

Kod
this.set=function(action, param) {
       eval("this."+action+"="+param);
   }


:

Kod
this.set=function(action, param) {
       this[action] = param;
   }


Wiem, że stary temat, ale tak dla potomności. winksmiley.jpg
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.