nils-hero: Ich kriege dieses drei-Zeilen-Script nicht ans Laufen...

Hallo,

Ich steh grad auf dem Schlauch:

  
function a() {  
   return {  
      b : 'Hallo Welt',  
      c : 'Hallo Welt'  
   };  
}  
var d = a();  
alert(d.b);  

Hier bekomme ich ein 'invalid label' als Fehlermeldung (noch nie gehabt), nehme ich die Eigenschaft c weg, bekomme ich 'd has no properties'

Zu Hilfe!

Gruß, Nils

  1. Hallo,

    Ich habs, das vergess ich jedesmal:

    hab die geschweifte Klammer nach dem return in die nächste Zeile gepackt.
    Dieses verflixte implizite ';', grr.

    Gruß, Nils

    1. Hallo Nils,

      Ich habs, das vergess ich jedesmal:

      hab die geschweifte Klammer nach dem return in die nächste Zeile gepackt.
      Dieses verflixte implizite ';', grr.

      Alternativ:

      function a() {  
         return ({  
            b : 'Hallo Welt',  
            c : 'Hallo Welt'  
         });  
      }  
      var d = a();  
      alert(d.b);
      

      (Dann weiß der Parser, dass die geschweifte Klammer ein Objekt sein *muss*.)

      Viele Grüße,
      Christian

      1. Hallo,

        function a() {

        return ({
              b : 'Hallo Welt',
              c : 'Hallo Welt'
           });
        }
        var d = a();
        alert(d.b);

        
        >   
        > (Dann weiß der Parser, dass die geschweifte Klammer ein Objekt sein \*muss\*.)  
          
        Nur schreibe ich auch manchmal die runden klammern, bei viel Inhalt, der Übersicht halber in eine neue Zeile, dann bin ich wieder beim Ausgangspunkt...  
          
        nicht zwingendes ';' eben, alles hat seine Vor- und Nachteile...  
          
        Gruß, Nils
        
        -- 
        [Bookmarks](http://del.icio.us/nilslindemann)
        
    2. hab die geschweifte Klammer nach dem return in die nächste Zeile gepackt.
      Dieses verflixte implizite ';', grr.

      Das macht in dem Code, den du uns gezeigt hast keinen Unterschied.

      Struppi.

      1. Hallo,

        hab die geschweifte Klammer nach dem return in die nächste Zeile gepackt.
        Dieses verflixte implizite ';', grr.

        Das macht in dem Code, den du uns gezeigt hast keinen Unterschied.

        So ists, ich hatte den Code, als ich ihn hier postete, wieder unbewußt richtig formatiert, in meinem Editor sah's so aus:

          
        function a()  
        {  
           return         // Ende der Anweisung für den Parser! Einer dieser fiesen Fehler... dank nicht zwingendem ';'  
           {  
              b : 'Hallo Welt',  
              c : 'Hallo Welt'  
           };  
        }  
        var d = a();  
        alert(d.b);  
        
        

        Sorry für die Irritation.

        Gruß, Nils

  2. Ich steh grad auf dem Schlauch:

    function a() {
       return {
          b : 'Hallo Welt',
          c : 'Hallo Welt'
       };
    }
    var d = a();
    alert(d.b);

    
    >   
    > Hier bekomme ich ein 'invalid label' als Fehlermeldung (noch nie gehabt),  
      
    Dieser Code funktioniert völlig problemlos und ist so auch korrekt.  
      
    Struppi.