JavaScript Getvariablename.
-
29-09-2019 - |
Вопрос
Это мой первый пост.
Я пытаюсь сделать некоторые основные мета-программирование с помощью JavaScript, и мне было интересно, есть ли способ получить идентификатор определенного объекта и с этим идентификатором, доступ к имени переменной или получить просто имя переменной конкретный объект. Я хочу воссоздать ситуацию, в которой вы впервые создаете каждый HTML на веб-странице, а также добавившись к некоторым событиям HTML-тегов, связанных с определенным классом - Cample Class -. Например: Предполагается следующий код:
var someFunction = function(someText){alert(someText);}
function SomeClassFunction(){
this.aClassFunction = someFunction;
}
var aVariableName = new SomeClassFunction();
А в HTML-коде предположим, у меня есть следующий кусок кода.
<html>
<head>
<title></title>
</head>
<body>
<div onclick="aVariableName.aClassFunction('Some text to show in alert');">
</div>
</body>
</html>
Затем, как вы можете заметить, что событие OnClick использует AvariableName i, который я создал ранее, но поскольку я впервые создаю имя переменной, а затем добавить имя в код, потому что я знал, что Avariablename было название этого объекта. То, что я хочу сделать или реализовать, это создать текст выше в HTML, не знаете имена переменной конкретного объекта. Я пробил в сети, но, к сожалению, я ничего не нашел об этом.
Решение
Я не знаю, как получить имя переменной из кода самого себя, не выполняя целую нагрузку на разборку работы, которые будут грязными, и я бы снимал кого-то для этого.
var someValue;
var foo = function() { someValue; }
alert((foo + '')); // this is now a string, use substr to extract variable name
Вы знаете, вы можете установить такие события в JavaScript someElement.onclick = someFunction
Таким образом, вам не нужно знать имя переменных, если все, что вы делаете, устанавливает обработчик событий.
Другие советы
В общем, нет - вы не можете получить имя определенной переменной или его «идентификатор».
Если вы действительно хотите, возможно, можно сделать плохие вещи, связанные с исключениями и следы стекла, чтобы получить эту информацию ... но я не знаю из вершины головы, как это сделать.
Редактировать: Я предполагаю, что, по «переменным ID», вы имеете в виду «уникальный идентификатор объекта, на который ссылается эта переменность», например, Python's id
Встроенный:
>>> x = {} >>> y = z = {} >>> (ID (x), ID (Y), ID (Z)) (123, 567, 567)
Я не намного уверен, что я правильно понимаю ваш вопрос в отношении мета-программирования, но обычно вы прикрепите обработчик событий к событию Click элемента DOM, вы можете исследовать свойства элемента внутри обработчика.
В JavaScript есть пара вещей, которые облегчают мета-программирование: навес Позвольте вам интерпретировать произвольный код, поэтому вы можете построить строку кода и оценить ее. Проблемы безопасности многочисленны. Вы также можете получить доступ к свойствам объекта по индексу или по имени, например,
aVariableName.aClassFunction
такой же как
aVariableName["aClassFunction"]
Надеюсь, это поможет.