Paul: Parameter an Funktion

Hallo!
was ist besser/performanter/ressourcenschonender? (Codebeispiele unten)

  1. nur die id an die js-Funktion übergeben und sich dann über die id das Element wieder zu besorgen, oder

  2. das gesamte Element an die js-Funktion zu übergeben und dann direkt damit arbeiten?

<img src="..." id="..." onclick="test(this.id)">

function test(buttonID) {  
       document.getElementById(buttonID).style.backgroundImage = "url(lappen.jpg)";  
}

<img src="..." onclick="test(this)">

function test(button) {  
       button.style.backgroundImage = "url(lappen.jpg)";  
}

Paul

  1. @@Paul:

    nuqneH

    1. nur die id an die js-Funktion übergeben und sich dann über die id das Element wieder zu besorgen

    Dann muss das Elementobjekt anhand der ID wieder aus dem DOM herausgesucht werden. Unnötigerweise, weil die Referenz darauf ja vorliegt und als Parameter übergeben werden sollte:

    1. das gesamte Element an die js-Funktion zu übergeben und dann direkt damit arbeiten?

    Ja.

    Qapla'

    --
    Gut sein ist edel. Andere lehren, gut zu sein, ist noch edler. Und einfacher.
    (Mark Twain)
      1. das gesamte Element an die js-Funktion zu übergeben und dann direkt damit arbeiten?

      Ja.

      Kann es dann vorkommen, dass das übergebene Element irgendwann "zu groß" wird, oder wird da wirklich nur die Referenz auf das Element übergeben?

      1. Kann es dann vorkommen, dass das übergebene Element irgendwann "zu groß" wird, oder wird da wirklich nur die Referenz auf das Element übergeben?

        Wenn es keine Referenz wäre dann würde das gar nicht gehen:
        button.style.backgroundImage = "url(lappen.jpg)";

        --
        for your security, this text has been encrypted by ROT13 twice.
        1. Danke an alle!

      2. Hi,

        Kann es dann vorkommen, dass das übergebene Element irgendwann "zu groß" wird,

        wenn dies passieren könnte, wäre das selbe Problem auch beim nachträglichen Holen des Elementobjektes per DOM-Methoden gegeben.

        Cheatah

        --
        X-Self-Code: sh:( fo:} ch:~ rl:| br:> n4:& ie:% mo:) va:) de:] zu:) fl:{ ss:) ls:~ js:|
        X-Self-Code-Url: http://emmanuel.dammerer.at/selfcode.html
        X-Will-Answer-Email: No
        X-Please-Search-Archive-First: Absolutely Yes
  2. [latex]Mae  govannen![/latex]

    Hallo!
    was ist besser/performanter/ressourcenschonender? (Codebeispiele unten)

    1. nur die id an die js-Funktion übergeben und sich dann über die id das Element wieder zu besorgen, oder
    2. das gesamte Element an die js-Funktion zu übergeben und dann direkt damit arbeiten?

    Eindeutig 2)

    Du hast bereits das ganze Objekt in this. Im ersten Beispiel wird aus diesem Objekt die id herusgesucht, das bereits bekannte objekt danach nicht weiter verwendet und dann in der Funktion dieses Objekt erneut gesucht.

    Im Übrigen halte ich es ohnehin für besser, immer das gesamte objekt zu übergeben als nur eine spezifische Eigenschaft; spätestens wenn man später mal(TM) eine weitere Eigenschaft benötigt fängt man sonst an, umzuschreiben.

    Cü,

    Kai

    --
    Dank Hixies Idiotenbande geschieht grade eben wieder ein Umdenken in Richtung "Mess up the Web". (suit)
    Foren-Stylesheet Site Selfzeug JS-Lookup
    SelfCode: sh:( fo:| ch:? rl:( br:< n4:( ie:{ mo:| va:) js:| de:> zu:) fl:( ss:| ls:?
  3. Servus,

    in derartigen Fällen ist es immer sinnvoller, wenn die Funktion ein Element erwartet - es gibt schließlich auch andere Methoden an ein Element zu kommen ausser über die id. Die meisten Element besitzen nichtmal eine id.

    Gruss
    Patrick