sss2019, вообще то если у функции объявлен аргумент, то даже если в него пришло undefined, то к глобальной переменной доступа не будет.
var action = function () {alert(1)};
var message = function (text, action) {
if (action) {
action();
}
};
var f1 = function () {
var action = function () {alert(2)};
message("trololo");
message("trololo", action);
};
message("trololo");
f1();