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

Beitrag lesen

Aber sie ist im window.onload definiert, genau wie auch setIntervall. Macht es denn einen Unterschied, welche der beiden Schreibweisen ich verwende? Für den Scope (Closure) doch wohl nicht, oder? Zumal es ja auch erst mit der Stringschreibweise ging ...;

Doch, genau für die Closure macht es den Unterschied.
Du hast im Prinzip

var func = new Function("myBgColorChange()");  
window.setInterval(func, 120);

Aus deinem String wird eine neue globale Funktion mit dem String als Body definiert, diese kennt dann aber natürlich deine Closure nicht mehr, da es ja eine Funktion im globalen Scope ist.
Das ist wie bei Events. Gibt man diese als String an, ist this windows. Gibt man sie als Funktionsreferenz an, ist this das Element.

<script>  
  
function func() {  
    alert(this);  
}  
  
window.onload = function () {  
    document.getElementById("test").onclick = func; // [object Object]  
}  
  
</script>  
<body>  
<button onclick="func()">[object Window]</button>  
<button id="test">[object HTMLButtonElement]</button>  
</body>  

Im 1. Fall ist Element.onclick = function(){
// this ist Element
  func(); // func wird im globalen Kontext gerufen
}
Im 2. Fall ist Element.onclick = func;
Element.onclick() wird mit Kontext Element gerufen

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