|
Сообщение от Poznakomlus
|
|
название функции есть в стеке вызовов, однако этот стек по разному работает в броузерах
|
Вы не учитываете, что в JS есть классы, анонимные классы, стрелочные функции, связанные функции, геттеры, сеттеры! Вы можете получить имя функции через name, это будет строка, но по этой строке вы не сможете восстановить функцию.
|
Сообщение от drwhite
|
хочу как-то так:
function func($params)
{
...
if (...) self($params);
}
|
А откуда должен браться этот self? Например в браузере уже есть self обозначающий текущий глобальный объект. Чистота функции подразумевает, что вы должны явно указать все используемые аргументы, т. е. иммутабельное глобальное окружение.
А значит вам нужно самим указать аргумент и это правильно...
function func(self, $params)
{
...
if (...) self($params);
}
И это использует имя функции только один раз, нет лишних переменных, есть strict mode и чистота функции. Вопрос только в том, как её запустить!