У меня ниже, вероятно, куча проблем, но давайте упростим их с помощью более простых примеров.
Предположим, есть две переменные, a=cat
и b=a
, и вы хотите сослаться на значение b
s a
к этой переменной, т.е. a
.Так по какой команде я могу это сделать?Переменная SomeCommand(b)
и переменная a
должны указывать на одно и то же пространство памяти, поскольку b
оценивается как a
.Тот же вопрос возникает из приведенного ниже кода, где у нас есть часть document.getElementById(vals[0].split('|')[0]).style.display= 'block';
, которая должна быть оценена как document.getElementById(picture).style.display= 'block';
, т. Е. Чтобы показать рисунок, но приведенный выше пример гораздо понятнее, поэтому обратитесь к нему, пожалуйста.Как сделать ссылку?Два пути выше эквивалентны?Я здесь бдительный, потому что столкнулся с похожими проблемами в других языках, но тогда они касались inode, символьных / жестких ссылок и тому подобного, но не представляли, как это работает в JS.Вкратце, как их оценивают?
function change_visibility(binX)
{
// binX is a thing that matches `/^[10Xx]+$/`
// 1 = show the thing
// 0 = do not show the thing
// x/X = do not do anything
//
// for example, 00011x would turn OFF picture-quote-question_mark
// while turning ON search and help but not doing anything to
// typing pad's current state
var vals = ['picture|binX.charAt(0)',
'quote|binX.charAt(1)',
'question_mark|binX.charAt(2)',
'search|binX.charAt(3)',
'help|binX.charAt(4)',
'typingPad|binX.charAt(5)'
];
for (var i=0; i<vals.length; i++)
{
if(vals[i].split('|')[1]==1)
{
//TODO: check whether you can do it like this,
// assumed for example that vals[0].split('|')[0] =picture
// but it is not, the "inode" or let call it arrow is diffent!
// ERROR HERE ?!?
document.getElementById(vals[i].split('|')[0]).style.display= 'block';
}
else if(vals[i].split('|')[1]==0)
{
document.getElementById(vals[i].split('|')[0]).style.display= 'none';
}
}
}
Пожалуйста, исправьте ярлыки, если вы знаете больше описательных альтернатив.