Вопрос

Это мой первый пост.

Я пытаюсь сделать некоторые основные мета-программирование с помощью 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"]

Надеюсь, это поможет.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top