Ich dachte, ich verstehe die Natur der sofort aufgerufenen Funktionsausdrücke (IIFEs), aber jetzt merke ich, dass ich nicht.Umfang eines benannten IIFE-Namens
Ich habe eine IIFE in einem Stück Code (in einer Webseite mit JQuery, wie es passiert) erstellt. Wenn ich jedoch die Funktion benenne und versuche, diese Funktion aus dem umschließenden Bereich aufzurufen, erhalte ich einen "undefinierten" Fehler?
Der Live-Code verhält sich in IE11 und Firefox 38 anders, was die Sache noch verwirrender macht. Allerdings habe ich einen einfachen Test JSfiddle hier-
https://jsfiddle.net/ktqq4uat/
und dies steht im Einklang zwischen den Browsern.
Ich dachte, diese beiden Lines-
(function myFunction2() {
...
(myFunction3= function() {
...
ziemlich gleichwertig waren, aber ich bekomme einen undefinierten Fehler auf „MyFunction2“ nur. sowie es interne Umfang. Was ist der Umfang dieses Namens
würde ich etwas Hilfe understanding-
1) Warum (Funktion MyFunction2() schätzen {... ist der Name der Funktion versteckt?
2) Warum sich myFunction2 und myFunction3 oben anders verhalten.
Rgds
IIFE ist eine in Klammern eingeschlossene Funktion, die außerhalb von ihnen nicht verfügbar ist. Obwohl du sie darin nennen kannst. – Rajesh
Sie können nicht 'testObject.newFunction2 = myFunction2;', es ist nicht sichtbar außerhalb –
Was, IE11 immer noch nicht behoben IE6 Bug? – Bergi