2016-05-03 8 views
0

Ich habe eine Nummer, die als Zähler in einer bestimmten Datenbank gespeichert ist. Jedes Mal, wenn die Seite ausgeführt wird, wird der Zähler um 1 erhöht. Ich habe kein Problem, diese Nummer abzurufen, aber ich möchte diese Nummer an einen bestimmten Namen anhängen und eine neue Funktion erzwingen.erhöhen Sie eine Zahl und fügen Sie sie an die Funktion an

Zum Beispiel

newGame0(); newGame1(); newGame2();

Wie würde ich mich dies zu tun?

+0

Ich kann nicht verstehen, was Sie erreichen wollen .. Können Sie mehr ausarbeiten? – choz

+0

Wenn ich richtig verstehe, willst du jedes Mal ein sauberes Spiel? Aber Sie möchten auch, dass es beim erneuten Laden der Seite beibehalten wird? Du könntest möglicherweise eine Spielklasse erstellen und jedes Mal eine neue Instanz von ihr erstellen, indem du sie auf ein Array schiebst, also wäre es nicht "newGame0()", sondern könnte möglicherweise "var games = []; games.push (neues Spiel()); Spiele [0]() ', aber Ausdauer beim erneuten Laden ist ein wenig schwieriger. Sie könnten die Daten mit 'JSON.stringify' serialisieren und in localStorage speichern, aber stringify funktioniert nicht gut mit Funktionen, so dass Sie Ihre eigene' toJson'-Funktion schreiben müssen. Aber Sie brauchen hier Einzelheiten. –

Antwort

2

Sie können Funktionen definieren newGame0, newGame1, newGame2 als Eigenschaften eines Objekts, Verwendung Dirac-Notation Eigenschaft referenzieren counter Verketten "newGame" + counter rufen Funktion

var counter = 0; 
 

 
var obj = { 
 
    newGame0: function() { 
 
    console.log(counter) 
 
    }, 
 
    newGame1: function() { 
 
    console.log(counter) 
 
    }, 
 
    newGame2: function() { 
 
    console.log(counter) 
 
    } 
 

 
} 
 

 
var interval = setInterval(function() { 
 
    if (counter < 3) { 
 
    // call `newGame0`, `newGame1`, `newGame2` 
 
    obj["newGame" + counter](); 
 
    ++counter; 
 
    } else { 
 
    clearInterval(interval) 
 
    } 
 
}, 1500)

-1
self['newGame' + counter] = function() 
{ 
}; 

oder

self['newGame' + counter] = existingFunctionName; 

Betrachten Sie ein Spielobjekt mit Methoden in seinem Prototyp zu schreiben und eine Reihe von Spielen in einem Array zu halten, anstatt den globalen Namespace zu verwirren.

Verwandte Themen