• Das Erstellen neuer Accounts wurde ausgesetzt. Bei berechtigtem Interesse bitte Kontaktaufnahme über die üblichen Wege. Beste Grüße der Admin

Statische + Variable Function

troneleck

New member
Hallo.

Wie kann man einen sequentieller Container, einer Variablen Function mitgeben?

Hier soll "dict" mit.

test(dict,"argument1","argument2",......)

JS Bin - Collaborative JavaScript Debugging

Code:
var filterkeys = [];
var wraptotr = [];
var wraptotd = [];
var wraptoth = [];
var dict = [{
  Name: "Horst",
  Alter: "22"
}, {
  Name: "Paul",
  Alter: "40"
}];

function c(a) {
  console.log(a);
}

// dict muß mit!!!!
function test() {
  var varops = [];

  for (var i = 0; i < arguments.length; i++) {
    varops.push(arguments[i]);
  }



  for (var e = 0; e < varops.length; e++) {


    varops[e].substring(0, 5) === "fkey_" ?
      filterkeys.push(varops[e].slice(5).split(",")) : "";

    varops[e].substring(0, 5) === "wttr_" ?
      wraptotr.push(varops[e].slice(5)) : "";

    varops[e].substring(0, 5) === "wttd_" ?
      wraptotd.push(varops[e].slice(5)) : "";

    varops[e].substring(0, 5) === "wtth_" ?
      wraptoth.push(varops[e].slice(5)) : "";


  }
  c(wraptotr);
  c(filterkeys);
  c(wraptoth);
  c(wraptotd);

}


test("wttr_class='zeilen color300'", "fkey_Name,Ort,Alter", "wttd_style='background-color:lightgrey;color:blue;'", "wtth_class='round blue'");
 
hmm aber js stoppt bei einem fehler. hat deine frage nichts damit zu tun? ich bin jetzt nicht tiefer eingestiegen.
 
Das Script stop bei keinem Fehler.
Die Tests die an die Console ausgegeben werden sind alle richtig.

Ich weis nur nicht wie ich den Container an die Function übergebe.

Istzustand = function test(){...}

test("argument1","argument2",...)
Alles funktioniert wie geplant.

Soll = function test(data,argumente){....} <---dies entspricht nicht dem Realen syntax, es soll nur zeigen was ich der Function mitgeben möchte.
test(container,"argument1","argument2",..)

Oder noch besser ausgedrückt, es soll ein Container und eine unbestimmte Anzahl an Weiteren Argumenten an die Function übergeben werden.

----------------------------
function test (data){..};
test(dict); <-----statisch / alles super

function test (){..}
test("argument1","argument2") <----variable / alles super

Ich benötige beider Arten von Functionen in einer Function.
 
Zuletzt bearbeitet:
Danke @ Dormilich.

.apply geht.

JS Bin - Collaborative JavaScript Debugging

Hab jetzt das Problem, das ich nicht weis wie ich den Container innerhalb der Function anspreche wenn ich den Namen nicht kenne.
Diese Function soll als Library verwendet werden.
Der Name des Containers kann sich ändern.

Code:
momentan ist = test.render2.apply(dict,["argument1","argument2"])
function render2(){
argumente verarbeiten;
"dict" verarbeiten; 
}

soll = test.render2.apply[COLOR="#FF0000"](irgend-ein-container[/COLOR],["argument1","argument2"])
function render2(){
argumente verarbeiten;
[COLOR="#FF0000"]den container verarbeiten der mit .apply mitgeliefert wurde[/COLOR];
}


Hier als Library : JS Bin - Collaborative JavaScript Debugging
 
Zuletzt bearbeitet:
Der erste Parameter, der an .apply übergeben wird, ist der Kontext der Funktion und kann darin über this angesprochen werden.

Aber ich verstehe den Sinn deiner Funktion nicht so wirklich und gut geschrieben ist sie auch nicht.
Warum verwendest du den Trinitätsoperator anstatt einem einfachen switch? Das wäre viel leichter zu lesen und auch performanter.
Auch globale Variablen sind keine gute Idee.
 
Zurück
Oben