/ / Variabili di stringa multipla Nomi che non funzionano in Javascript - javascript, jquery

Nomi variabili a stringa multipla che non funzionano in Javascript - javascript, jquery

Recentemente ho pubblicato su Dynamic Names inJavascript. Sono andato avanti e ho cercato di creare un nome variabile multi stringa (combinando una stringa e una variabile per creare un nuovo nome di variabile), e non sembra funzionare. Sono molto confuso perché sto facendo quello che molti post su SO dicono di fare (quindi penso comunque).

Comunque qui è la variabile dinamica che sto usando:

var dynamic["replyupvote"+replyid] = false;

e poi quando lo chiamo uso:

dynamic["replyupvote"+replyid]

Quindi la mia domanda è dove sto sbagliando? Se desideri vedere il mio codice completo:

function replyupvote(replyid, upvotes, downvotes, votesclass, votesnumber) {
var dynamic["replyupvote"+replyid] = false;
return function() {
if (dynamic["replyupvote"+replyid]) {
dynamic["replyupvote"+replyid] = true;
}
else {
$.ajax({
url: "http://localhost/postin"/categories/votes.php",
type: "POST",
data: { "itemid": replyid,
"userid": <?php echo $_SESSION["logged_in"]; ?>,
"action": "upvotes",
"type": "reply" },
success: function() {
$("." + votesclass).css("color", "orange");
$("." + votesnumber).text(parseInt(upvotes - downvotes) + 1);
}
});
dynamic["replyupvote"+replyid] = true;
}
}
}

Questo codice ha funzionato prima di me attraverso i nomi variabili a stringa multipla. Quindi cosa sto sbagliando? Grazie! :)


MODIFICARE

Ho pensato di buttarlo dentro. Javascript lancia l'errore che la funzione non è definita a causa della sintassi errata.

risposte:

1 per risposta № 1

Indipendentemente da ciò che stai facendo qui ha sensoo no, per creare dinamicamente le proprietà su un oggetto, è necessario assicurarsi che JS sappia che è un oggetto, non un array. Quindi, prima di provare a creare una proprietà dell'oggetto dinamico, dichiarare esplicitamente dynamic come oggetto:

var dynamic = {};
dynamic["replyupvote"+replyid] = false;

Questo dovrebbe eliminare l'errore di sintassi almeno.


1 per risposta № 2

Dovresti prima impostare la dinamica come oggetto

var dynamic = {};
dynamic["replyupvote"+replyid] = false;

variableName [keyName] = valore; è la sintassi di un oggetto.

Devi dire a js che la tua variabile è un oggetto prima di poter usare questa notazione.