Как использовать ссылку на объект, хранящуюся в переменной, в виде строки? - PullRequest
0 голосов
/ 15 марта 2012

Если у меня есть переменная foo, которая содержит ссылку на объект:

var foo = someObj;

Как я могу использовать имя объекта в виде строки?

Я пытался:

var bar = foo.valueOf()

Но это только что вернуло еще одну ссылку на объект.

У меня есть алгоритм, который выбирает из большого количества объектов. Затем я хочу использовать имя этого объекта для выбора из группы элементов HTML. Использование следующего также не работает (возвращает ноль):

document.getElementById(foo)

Спасибо.

Ответы [ 2 ]

4 голосов
/ 15 марта 2012

Нет надежного способа получить название объекта.

Пример:

var obj = {};
var obj1 = obj;
var obj2 = obj;

magically_get_and_print_name(obj);  // What to print? "obj"? "obj1"? "obj2"?

Методы получения имени в некоторых случаях:

  • Объявления функций - funcreference.name (нестандартные, но хорошо поддерживаемые)
  • Экземпляры конструктора - instance.constructor.name
0 голосов
/ 15 марта 2012

Допустим, у вас есть:

var someObj = {
    a: 15,
    b: 36
};

А затем вы сделали:

var foo = someObj;

Нет способа получить строку "someObj" (или "foo") из foo.

Что вы можете сделать, это добавить имя к объекту при его создании.Примерно так:

var someObj = {
    a: 15,
    b: 36,
    objName: 'someObj'
};
var foo = someObj;
console.log(foo.objName); // "someObj"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...