Как получить имя функции из той функции?

Как я могу получить доступ к имени функции из той функции?

// parasitic inheritance
var ns.parent.child = function() {
  var parent = new ns.parent();
  parent.newFunc = function() {

  }
  return parent;
}

var ns.parent = function() {
  // at this point, i want to know who the child is that called the parent
  // ie
}

var obj = new ns.parent.child();
241
задан Sebastian Simon 20 July 2017 в 11:46
поделиться

2 ответа

посмотрите здесь: http://www.tek-tips.com/viewthread.cfm?qid=1209619

arguments.callee.toString();

кажется правильным для ваших нужд.

-1
ответ дан 23 November 2019 в 03:16
поделиться

Вы не можете. Функции не имеют имен в соответствии со стандартом (хотя в Mozilla есть такой атрибут) - они могут быть присвоены только переменным с именами.

Также ваш комментарий:

// access fully qualified name (ie "my.namespace.myFunc")

находится внутри функции my.namespace.myFunc.getFn

Что вы можете сделать, так это вернуть конструктор объекта, созданного с помощью new

Итак, вы могли бы сказать

var obj = new my.namespace.myFunc();
console.info(obj.constructor); //my.namespace.myFunc
8
ответ дан 23 November 2019 в 03:16
поделиться
Другие вопросы по тегам:

Похожие вопросы: