Diskuze: Údaj string ve funkci nefunguje
V předchozím kvízu, Online test znalostí JavaScript, jsme si ověřili nabyté zkušenosti z kurzu.

Člen

Zobrazeno 6 zpráv z 6.
//= Settings::TRACKING_CODE_B ?> //= Settings::TRACKING_CODE ?>
V předchozím kvízu, Online test znalostí JavaScript, jsme si ověřili nabyté zkušenosti z kurzu.
Ahoj, si hledáš následující syntaxi:
var write_text = find_write_text_id.innerHTML = select_lang[actual_lang].welcome;
A tady to máš v praxi https://jsfiddle.net/bgw4sv2z/
Díky, to je ono. No a jak se to vlastně jmenuje, jaká je to teď proměnná?
Typově se nic nemění actual_lang je pořád string a select_lang[actual_lang] je pořád objekt. Je to jen jiný typ zápisu umožňující použít proměnnou jako klíč.
var actual_lang = document.getElementById("selectBox").value;
select_lang.actual_lang.welcome;
select_lang - je pole {}
actual_lang - je promenna typu string (select.value)
var select_lang={
EN:{
welcome: "Welcome everyone!"
},
CS:{
welcome: "Vítejte všichni!"
}
};
//select_lang.actual_lang.welcome
select_lang.CZ.welcome - cz je v tomto pripade pointer, ktery vytvoril javascript pro zjednoduseni zapisu
select_lang.EN.welcome
select_lang['CZ'].welcome
select_lang['EN'].welcome
select_lang.actual_lang.welcome
// tento zapis by odpovidat strukture pole takoveto:
var select_lang={
actual_lang:{
welcome: "Welcome everyone!"
}
};
// nebo
select_lang = {}
select_lang.actual_lang = {}
select_lang.actual_lang.welcome = {}
// nebo
select_lang = {'actual_lang' : {'welcome': 'xxx'}};
// ono je to dost matouci, protoze to jde napsat i takto
select_lang = {actual_lang : {welcome: 'xxx'}};
// nebo
function xxx()
{
this.actual_lang = {welcome: 'aaa'};
}
select_lang = new xxx;
alert(select_lang.actual_lang.welcome)
//Ale schvalne si to zkus napsat takto:
// ono je to dost matouci, protoze to jde napsat i takto
select_lang = {actual_lang : {welcome: 'xxx'}};
alert(select_lang.actual_lang.welcome)
actual_lang = 'aaa';
select_lang = {actual_lang : {welcome: 'yyy'}};
alert(select_lang.actual_lang.welcome)
alert(select_lang.aaa.welcome)
alert(select_lang[actual_lang].welcome)
Mozna, ze to pujde, mozna ne. Kdyby to neslo, tak lze pouzit zapis se zavorkami, pro pole, protoze se ti to nekdy muze hodit. Js dela aliasy, pointery, kdyz je to undefined, ale nemel by delat, kdyz to neni undefined.
//select_lang = {actual_lang : {welcome: 'yyy'}};
select_lang = {};
select_lang[actual_lang] = {welcome: 'yyy'};
Zobrazeno 6 zpráv z 6.