Как избежать вызова каждый раз, когда метод - PullRequest
0 голосов
/ 16 мая 2019

У меня есть метод, подобный указанному ниже

function setme(){
   var date = 'new date()';
}

function getName1(){
 setme();

}

function getName2(){
 setme();

}

function getName3(){
 setme();

}
function getName4(){
 setme();

}

как избежать вызова метода setme каждый раз, у нас есть какое-нибудь другое оптимизированное решение?

Ответы [ 2 ]

3 голосов
/ 16 мая 2019

Я не уверен, что именно вы пытаетесь выполнить, так как для даты всегда нужна функция для получения самой последней информации. Но если вам нужно определить переменные в конструкторе классно-ориентированным способом:

    class Names {
            constructor() {
                this.date = new Date();
            }

            getName1() {
                return this.date;
            }

            getName2() {
                return this.date;
            }

            getName3() {
                return this.date;
            }
        }
    //If you only create a new class object
var n = new Names;
console.log(n.getName1());
console.log(n.getName2());
console.log(n.getName3());

//if you create a new class object for every call

        console.log((new Names).getName1());
        console.log((new Names).getName2());
        console.log((new Names).getName3());
1 голос
/ 16 мая 2019

Это установит дату только один раз, а затем установит для 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();

}
...