Seite 1 von 3 123 LetzteLetzte
Ergebnis 1 bis 15 von 36
  1. #1
    j-l-n Guest

    self-executing functions

    Was ist der Unterschied in der Schreibweise der folgenden zwei - sich selbst aufrufenden - Funktionen?
    Code:
    (function(value){
      console.log(value);
    })(2);
    
    //vs.
    (function(value){
      console.log(value);
    }(2));

  2. #2
    tsseh ist offline Foren-Gott
    registriert
    19-05-2008
    Beiträge
    5.666

    AW: self-executing functions

    du umgehst in beiden fällen ein problem in der js syntax
    denn eigentlich sollte
    Code:
    function(value){
      console.log(value);
    }(2);
    reichen, geht aber nicht

  3. #3
    j-l-n Guest

    AW: self-executing functions

    Und es ist völlig egal, ob ich dir erste oder zweite Variante verwende?

  4. #4
    Avatar von mikdoe
    mikdoe ist offline Administrator
    registriert
    01-05-2010
    Beiträge
    7.706

    AW: self-executing functions

    Was macht diese Syntax? Vor allem die 2?
    Das deutsche Javascript Forum http://forum.jswelt.de http://forum.jswelt.de/images/logoJsWeltForumV4_32x22.png
    Sorry wenn ich manchmal ohne Hallo und nur klein schreibe! Dann bin ich nicht unfreundlich sondern mit nervigem kleinem Touch Tablet zugange

  5. #5
    tsseh ist offline Foren-Gott
    registriert
    19-05-2008
    Beiträge
    5.666

    AW: self-executing functions

    Zitat Zitat von j-l-n Beitrag anzeigen
    Und es ist völlig egal, ob ich dir erste oder zweite Variante verwende?
    du kannst auch !function(){}() schreiben, das machen viele, weil sie alle js am ende in eins packen und minimieren. hat man dann in der letzten zeile des einen scriptes ein ; vergessen und schreibt in der 1. des nächsten scriptes !function(){}() fällt das mehr auf als (function(value){})(2);
    hier genauer
    http://forum.jswelt.de/javascript/58...tml#post373618 (Addieren durch Eingabe und Ausgabe)

  6. #6
    Avatar von Dormilich
    Dormilich ist offline Kaiser
    registriert
    15-01-2010
    Beiträge
    1.297

    AW: self-executing functions

    Zitat Zitat von hesst Beitrag anzeigen
    denn eigentlich sollte […] reichen, geht aber nicht
    stimmt nicht ganz, function definitions sind per se nicht ausführbar, function expressions aber schon.

  7. #7
    tsseh ist offline Foren-Gott
    registriert
    19-05-2008
    Beiträge
    5.666

    AW: self-executing functions

    Zitat Zitat von Dormilich Beitrag anzeigen
    stimmt nicht ganz, function definitions sind per se nicht ausführbar, function expressions aber schon.
    sag ich doch, genau das ist ja das problem, du kannst eine function expression nicht von einer function definition unterscheiden.

  8. #8
    Avatar von Dormilich
    Dormilich ist offline Kaiser
    registriert
    15-01-2010
    Beiträge
    1.297

    AW: self-executing functions

    ich finde schon, daß man eine definition gut von einer expression unterscheiden kann, der parser kann es ja auch (sonst würde das function hoisting ja nicht funktionieren).

  9. #9
    tsseh ist offline Foren-Gott
    registriert
    19-05-2008
    Beiträge
    5.666

    AW: self-executing functions

    was ist
    function test(){ alert(1); }

  10. #10
    Avatar von Dormilich
    Dormilich ist offline Kaiser
    registriert
    15-01-2010
    Beiträge
    1.297

    AW: self-executing functions

    so wie’s da steht ne definition.

  11. #11
    tsseh ist offline Foren-Gott
    registriert
    19-05-2008
    Beiträge
    5.666

    AW: self-executing functions

    Zitat Zitat von Dormilich Beitrag anzeigen
    so wie’s da steht ne definition.
    und warum kann ich dann einer variablen eine function definition zuweisen?
    var test2 = function test(){ alert(1); }
    und warum ist test dann nicht definiert?
    Code:
    var test2 = function test(){ alert(1); }
    test();

  12. #12
    Avatar von Dormilich
    Dormilich ist offline Kaiser
    registriert
    15-01-2010
    Beiträge
    1.297

    AW: self-executing functions

    Zitat Zitat von hesst Beitrag anzeigen
    und warum kann ich dann einer variablen eine function definition zuweisen?
    kannst du nicht. weil es dann eine expression ist.

    sh. auch Expressions versus statements in JavaScript Absatz 3.2

  13. #13
    tsseh ist offline Foren-Gott
    registriert
    19-05-2008
    Beiträge
    5.666

    AW: self-executing functions

    Zitat Zitat von Dormilich Beitrag anzeigen
    kannst du nicht. weil es dann eine expression ist.
    genau, du kannst die function definition function test(){ alert(1); } also nicht von der function expressionfunction test(){ alert(1); } unterscheiden. das ergibt sich erst aus dem context. hast du jetzt noch Reduce/Reduce Conflicts im parser kommt es zu problemen wie hier. eigentlich ist die function expression eine zulässige call expression, der parser geht aber von einer function definition als function declaration statement aus. verpackst du die function expression in eine (sinnlose) primary expression die du in einer call expression verwendest löst du für den parser den konflikt auf.

  14. #14
    Avatar von Dormilich
    Dormilich ist offline Kaiser
    registriert
    15-01-2010
    Beiträge
    1.297

    AW: self-executing functions

    Zitat Zitat von hesst Beitrag anzeigen
    genau, du kannst die function definition function test(){ alert(1); } also nicht von der function expressionfunction test(){ alert(1); } unterscheiden. das ergibt sich erst aus dem context.
    Dieses Problem hast du aber immer, nicht nur bei Funktionen. Und nicht nur in JavaScript.

  15. #15
    tsseh ist offline Foren-Gott
    registriert
    19-05-2008
    Beiträge
    5.666

    AW: self-executing functions

    Zitat Zitat von Dormilich Beitrag anzeigen
    Dieses Problem hast du aber immer, nicht nur bei Funktionen. Und nicht nur in JavaScript.
    das führt aber nicht zu problemen, weil die konflikte aufgelöst werden. in diesem fall führt es aber zu problemen, weil (jetzt nochmal)
    Code:
    function(value){
      console.log(value);
    }(2);
    auch gehen sollte. es geht aber nicht. und zwar stimmt das ganz und NICHT
    Zitat Zitat von Dormilich Beitrag anzeigen
    stimmt nicht ganz, function definitions sind per se nicht ausführbar, function expressions aber schon.
    weil es eine function expression ist.
    Geändert von tsseh (09-12-2014 um 10:56 Uhr)

Seite 1 von 3 123 LetzteLetzte

Ähnliche Themen

  1. this in functions übergeben
    Von GELight im Forum JavaScript
    Antworten: 9
    Letzter Beitrag: 23-01-2011, 19:18
  2. functions return
    Von dezer im Forum JavaScript
    Antworten: 10
    Letzter Beitrag: 08-04-2009, 17:57
  3. COM Functions in PHP4
    Von promillo im Forum Serverseitige Programmierung
    Antworten: 0
    Letzter Beitrag: 11-07-2001, 09:59
  4. functions mit Netscape
    Von Metbrötchen im Forum JavaScript
    Antworten: 0
    Letzter Beitrag: 29-11-2000, 10:57

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •