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