jobo: OO bgColorChanger - next try: alles in einem Objekt - kl. opt.

Beitrag lesen

Hallo,

Macht es aber Sinn, den colorHandler immer wieder neu zu kreiren/createn? Kann es grad nich testen, aber werden dadurch Werte nicht wieder überschrieben?

Also doch kurz Zeit gehabt: Im setIntervall wird ja die Funktion colorHandler nur genau einmal aufgerufen, nämlich um die Funktion zu erzeugen, die setIntervall dann immer wieder aufrufen soll. Habe es noch JSLint-konform gemacht und musste dafür die doppelt-Definierten Farbvariablennamen ändern, hoffentlich sinnig von "red" in "nextRed" ...;

  
function createColorHandler(elem, prop, red, redRange, green, greenRange, blue, blueRange) {  
    function createColorObj(v, r) {  
        var value = v, max = v, range = r, dir = 1;  
        return function () {  
            if (value <= max - range || value >= max) {  
                dir *= -1;  
            }  
            value += dir;  
            return value;  
        };  
    }  
    var nextRed = createColorObj(red, redRange),  
        nextGreen = createColorObj(green, greenRange),  
        nextBlue = createColorObj(blue, blueRange);  
    return function () {  
        elem[prop] = "RGB(" + nextRed() + "," + nextGreen() + "," + nextBlue() + ")";  
    };  
}  
  
window.onload = function () {  
    var myBody = document.getElementsByTagName("body")[0];  
    window.setInterval(createColorHandler(myBody.style, "backgroundColor", 255, 55, 168, 10, 136, 16), 120);  
};  

Gruß

jobo

0 59

OO Backgroundcolorchanger - optimieren /Kontext von this

jobo
  • javascript
  1. 0
    unknown
    1. 0

      OO - optimieren /Kontext von this - was macht der Browser da?

      jobo
      1. 0
        unknown
        1. 0
          jobo
          1. 0
            unknown
            1. 0
              jobo
              1. 0
                unknown
                1. 0
                  jobo
                  1. 0
                    unknown
  2. 0
    ChrisB
    1. 0
      jobo
      1. 0
        ChrisB
        1. 0
          jobo
          1. 0
            molily
            1. 0
              jobo
      2. 0
        molily
        1. 0
          jobo
          1. 0
            molily
            1. 0

              OO bgColorChanger - next try: alles in einem Objekt

              jobo
              1. 0

                OO bgColorChanger - next try: alles in einem Objekt - kl. opt.

                jobo
                1. 0
                  unknown
                  1. 0
                    jobo
                    1. 0
                      jobo
                      1. 0

                        colorChanger - rein funktional - Feinschliff

                        jobo
                        1. 0
                          jobo
                          1. 0

                            colorChanger - Feinschliff en Detail, macht das Sinn?

                            jobo
                            1. 0
                              molily
                              1. 0
                                jobo
                                1. 0
                                  molily
                          2. 0
                            molily
                            1. 0
                              jobo
                              1. 0
                                unknown
                                1. 0
                                  jobo
                                  1. 0
                                    unknown
                                2. 0
                                  molily
                                  1. 0
                                    unknown
                  2. 2
                    molily
                    1. 0
                      unknown
                      1. 0
                        molily
                        1. 0
                          molily
                          1. 0
                            unknown
                            1. 0
                              jobo
                            2. 0
                              jobo
                            3. 0

                              OO bgColorChanger - mit Closure (verschachtelte Objekte)

                              jobo
                            4. 0
                              molily
                              1. 0

                                OO bgColorChanger - elegant oder zumindest vernünftig!

                                jobo
                    2. 0
                      jobo
                    3. 0

                      bgColorChanger - OO vs. funktional

                      jobo
                      1. 1
                        molily
                        1. 0
                          jobo
  3. 0

    OO - Zugriff auf Objektmethode mittels Namen als Stringparameter

    jobo
    1. 0
      unknown
      1. 0
        jobo
        1. 0
          ChrisB
          1. 0
            jobo
        2. 0
          unknown
    2. 0
      molily
      1. 0
        jobo