globe: Frage zu eval()

Beitrag lesen

n'abend,

<body onload="tuedies(parameterA, parameterB, parameterC)">... <!-- Das geht, direkter Methodenaufruf -->

du solltest dir klar machen, dass der inhalt des handlers, den du im HTML angegeben hast, "in einer anonymen Funktion gekapselt wird".

Sprich dein HTML von oben in Javascript übersetzt sieht dann etwa so aus:

body.onload = function(){  
  tuedies( parameterA, parameterB, parameterC);  
};

window.onload=tuedies(parameterA, parameterB, parameterC);.../* Das geht nicht, warum? Warum kann man nicht auch hier direkt eine Funktion aufrufen? */

Das *KANN NICHT* den gewünschten Effekt haben. window.onload wird hier _das Ergebnis_ des Funktions_aufrufs_ von tuedies übergeben. NICHT die Funktion selbst.

window.onload = function(){  
  tuedies( parameterA, parameterB, parameterC);  
};

stellt sicher, dass deine Funktion tuedies() mit den gewünschten Parametern aufgerufen wird.

window.onload=tuedies;.../* Das geht wiederum */

Das hingegen funktioniert (nur ohne Parameter), weil du dem onload-Handler hier ein Funktions-Objekt zuweist. Analog zum Obigen hätte man auch folgendes notieren können:

window.onload = function(){  
  tuedies();  
};

Das befriedigt mich _ganz und gar_ nicht. ;-)

Das befriedigt dich nur noch nicht, weil du noch nicht verstanden hast, dass sich dein Problem in Nichts auflöst, sobald du "anonyme Funktionen" verstanden hast.

weiterhin schönen abend...

--
Freundlich wie man war, hat man mir Großbuchstaben geschenkt.
sh:( fo:# ch:# rl:| br:> n4:& ie:{ mo:} va:) de:] zu:} fl:( ss:? ls:[ js:|