Frage von abbrechen, 20

Allgemeine js Funktionen schreiben?

Hi,

ich lerne JavaScript und habe ein recht großes Problem mit der Syntax.
Ich weiss zwar bisher, wie ich z.B. bestimmte IDs, Klassen oder Tags anspreche, aber nicht wie ich die Funktion verallgemeinere.
Bisher konnte ich herausfinden, dass ich arr als allgemeine Schreibweise für array schreiben kann, um in der Anwendung später den array-Namen reinschreiben zu können.

Doch wie verhält es sich mit IDs, Klassen, Tags, Objekten und weiss ich nicht noch alles.
Kennt ihr da zufällig eine umfangreiche Liste oder gibt es eine Eselsbrücke?

Beispiel, falls nicht klar ist, was ich meine:

Statt zu schreiben ... getElementById("demo").method ...

dass man allgemein schreibt ... getElementById('id').method ...

Expertenantwort
von regex9, Community-Experte für Programmierung,

Statt dich bereits mit dem DOM zu beschäftigen, solltest du erst einmal die absoluten Grundlagen lernen, wie mir scheint. Ich meine damit Variablen, denn diese stellen wohl das dar, was dir fehlt.

In Variablen kannst du Werte zwischenspeichern. In Kombination mit Funktionen eignen sich Parameter, die dir helfen, die Abstraktion zu erhöhen.

Beispiel:

function addiere(a, b){
  return a + b;
}

function mittelwert(a, b){ return addiere(a, b) / 2; }

Wenn ich dein letztes Beispiel richtig verstehe, würdest du demnach so etwas wollen:

function getElement(id){
  return document.getElementById(id);
}

Ob das in der Praxis wirklich sinnvoll ist, möchte ich bezweifeln, denn für sich musst du dann ja erst eine eigene Funktion definieren. Dein Programm wird nun nicht unbedingt übersichtlicher, weil du eine solche Anweisung verkürzt. Ich würde nur Sinn darin sehen, wenn der Subalgorithmus etwas komplexer ist, als nur der Aufruf einer Funktion.

Bisher konnte ich herausfinden, dass ich arr als allgemeine Schreibweise für array schreiben kann, um in der Anwendung später den array-Namen reinschreiben zu können.

Was du damit meinst, ist mir etwas schleierhaft. Du kannst lediglich die Variable, die auf das Array-Objekt zeigt, arr nennen. Den Arraynamen später zu ändern, ist jedoch nicht möglich.

Aber vielleicht meinst du folgendes Beispiel:

function reiseziele(arr){
  for(var i = 0; arr.length > i; ++i)
    alert(arr[i]);
}

var staedte = [ "London", "Berlin", "Stockholm" ]; reiseziele(staedte);

Hier ist arr allerdings ein Parameter, in den bei Aufruf der Funktion das Argument staedte hineinkopiert wird (pass-by-value).

function doAnything(param){
  // ....
}

var arg = 1; doAnything(arg); // param = arg

Dabei nimmt die Funktion das, was sie bekommt, und versucht es implizit zu casten. Wenn das nicht gelingt, ist das dein Problem und es kommt zum Runtime-Error.

Du kannst übrigens auch die Parameter weglassen und dafür mit dem Objekt arguments (ein Property von Function) auf jedes übergebene Argument zugreifen. Eine Funktion addiere, die bspw. keine Parameter definiert aber 5 Zahlen bei Aufruf übergeben bekommt, kann dennoch auf jeden Wert problemlos zugreifen:

function addiere(){
  var summe = 0;
  for(var zahl in arguments){
    summe += arguments[zahl];
  }
  return summe;
}

var summe = addiere(1,2,3,4,5);

Keine passende Antwort gefunden?

Fragen Sie die Community

Weitere Fragen mit Antworten