Обращаюсь к вам с другим вопросом, связанным с объектами Javascript, до сих пор не смог найти ответ.
Я понимаю, что функции - это объекты и у них нет имен. Вместо этого переменные являются ссылками на эти объекты.
> var a = function() {
... console.log('a');
... };
> a
[Function]
> typeof(a)
'function'
Все это означает, что я не могу попросить функцию назвать ее. Я полностью согласен с этим. Но есть еще один случай (помещение именованной функции в массив), где меня интересует имя, и оно, очевидно, там.
> var b = [function myname(){console.log('hi');},];
> b[0]
[Function: myname]
> b[0]();
hi
> typeof(b);
'object'
> typeof(b[0]);
'function'
В последнем случае мне интересно, есть ли более элегантный способ запроса имени (в данном случае «myname»), чем использование toString ()?
Cheers,
Mark