/ / Premenné s premennými viacerých reťazcov nefungujú v Javascripte - javascript, jQuery

Variabilné názvy viacerých reťazcov nepracujú v jazyku Javascript - javascript, jquery

Nedávno som uverejnil príspevok o Dynamických názvoch v systéme WindowsJavascript. Išiel som do toho a pokúsil som sa vytvoriť názov premennej s viacerými reťazcami (kombináciu reťazca a premennej, aby sa vytvoril nový názov premennej) a zdá sa, že to nefunguje. Som veľmi zmätený, pretože robím to, o čom hovoria mnohé príspevky v informačnom systéme (takže si myslím, že aj tak).

Každopádne tu je dynamická premenná, ktorú používam:

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

a potom, keď to volám, používam:

dynamic["replyupvote"+replyid]

Takže moja otázka je, kde sa mýlim? Ak by ste chceli vidieť môj úplný kód:

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;
}
}
}

Tento kód fungoval skôr, ako som prechádzal v názvoch premenných Multi String. Čo teda robím zle? Ďakujem! :)


UPRAVIŤ

Myslel som, že by som to mal zahodiť. Javascript vyvolá chybu, že funkcia nie je definovaná kvôli nesprávnej syntaxi.

odpovede:

1 pre odpoveď č. 1

Bez ohľadu na to, či to, čo tu robíte, dáva zmyselalebo nie, ak chcete dynamicky vytvárať vlastnosti objektu, musíte sa uistiť, že spoločnosť JS vie, že ide o objekt, nie o pole. Skôr než sa pokúsite vytvoriť vlastnosť dynamického objektu, explicitne vyhláste dynamic ako objekt:

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

To by malo prinajmenšom zbaviť syntaktickú chybu.


1 pre odpoveď č. 2

Najprv by ste museli nastaviť dynamiku ako objekt

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

variabilný názov [keyName] = hodnota; je syntax objektu.

Pred použitím tohto zápisu musíte povedať, že vaša premenná je objekt.