如何避免每次调用一个方法

时间:2019-05-16 15:14:43

标签: javascript optimization requirejs logic

我有如下方法

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

function getName1(){
 setme();

}

function getName2(){
 setme();

}

function getName3(){
 setme();

}
function getName4(){
 setme();

}

如何避免每次都调用 setme 方法,我们还有其他优化的解决方案吗?

2 个答案:

答案 0 :(得分:3)

我不确定您要完成什么,因为日期始终需要一个函数来检索最新的日期。但是,如果要以面向类的方式在构造函数中定义变量:

    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 :(得分:1)

这将只设置一次日期,然后将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();

}