Это установит дату только один раз, а затем установит для setFunction значение null, чтобы освободить память, если ваша функция setFunction по какой-то причине очень велика.
function executeOnce(executable) {
return function () {
if (executable !== null) {
executable();
executable = null;
}
}
}
var setme = executeOnce(
function() {
date = 'new date()';
}
);
function getName1(){
setme();
}
function getName2(){
setme();
}
function getName3(){
setme();
}
function getName4(){
setme();
}