Непосредственно перед вызовом функции с определенным именем я хотел бы объявить ее (с резервным определением), , если она еще не существует :
if (typeof myFunction === 'undefined') {
let myFunction = () => console.log('Warning: myFunction() has not been defined.');
}
myFunction();
Но, , конечно, , let
имеет область видимости блока, поэтому, несмотря на предоставление myFunction()
запасного определения внутри if statement
, myFunction()
остается неопределенным вне блока if-Statement.
Самое простое решение - использовать var
(который не имеет области видимости блока) вместо let
:
var myFunction = () => console.log('Warning: myFunction() has not been defined.');
Это рекомендуемый подход? Или я упускаю что-то более традиционное?
NB Как может случиться так, что я не знаю, определена ли эта конкретная функция или еще не определена (либо с помощью let
, const
или var
)?
Поскольку я выполняю постобработку сценария, созданного пользователем, который может включать или не включать определение этой функции и должен:
- предоставить запасной вариант, если он еще не определен; или
- ничего не делать, если это