Parameter an Funktion
Paul
- javascript
0 Gunnar Bittersmann0 Paul0 zaphod19840 Paul
0 Cheatah
1 Kai3453 shn
Hallo!
was ist besser/performanter/ressourcenschonender? (Codebeispiele unten)
nur die id an die js-Funktion übergeben und sich dann über die id das Element wieder zu besorgen, oder
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
@@Paul:
nuqneH
- 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:
- das gesamte Element an die js-Funktion zu übergeben und dann direkt damit arbeiten?
Ja.
Qapla'
- 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?
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)";
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
[latex]Mae govannen![/latex]
Hallo!
was ist besser/performanter/ressourcenschonender? (Codebeispiele unten)
- nur die id an die js-Funktion übergeben und sich dann über die id das Element wieder zu besorgen, oder
- 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
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