Javascript 模块变量作为方法的输出

Javascript 模块变量作为方法的输出,javascript,Javascript,我有一个Javascript模块: const myModule = { foo: this.initializeFoo(), initializeFoo(){ // some loops and stuff to create an array } } 但是我得到一个错误:这个。initializefo不是一个函数 是否需要使用一些语法来实现这一点,或者这是不可能的?在对象外部声明initializefo()函数 const myModule={ foo:initia

我有一个Javascript模块:

const myModule = {
  foo: this.initializeFoo(),

  initializeFoo(){
    // some loops and stuff to create an array
  }
}
但是我得到一个错误:
这个。initializefo
不是一个函数


是否需要使用一些语法来实现这一点,或者这是不可能的?

在对象外部声明
initializefo()
函数

const myModule={
foo:initializeFoo(),
}
函数初始化fo(){
返回“hi”;
//或者一些循环和东西来创建一个数组
}

console.log(myModule)
如果您只想在对象创建时调用它一次,那么我会选择一个自动执行的匿名函数:

const myModule = {
    foo: (function () {
        // some loops and stuff to create an array
    })()
};
或者,也可以使用箭头语法:

const myModule = {
    foo: (() => {
        // some loops and stuff to create an array
    })()
}
示例代码段:

const myModule={
傅:(()=>{
console.log('Processing');
返回数组.apply(null,{length:10}).map(Number.call,Number);
})()
};
//您可以看到“处理”只打印一次
log(myModule.foo[2]);
log(myModule.foo[7])如果您可以使用ES6:

class MyModule {
  constructor() {
    this.initializeFoo();
  }
  initializeFoo() {
    console.log('test');
    // some loops and stuff to create an array
  }
}

const myModule = new MyModule();
如果需要存储初始化foo()的结果


我希望函数只在加载时运行一次,并将输出保存到一个我可以多次访问的变量中。然后,如果只需要运行ocne,并且它们保持相同的值,则可以使其成为一个立即调用的函数,返回一个常量。
class MyModule {
  constructor() {
    this.initializeFoo();
  }
  initializeFoo(){
    console.log('test');
    this.initialVal = 2;
  }
}

const myModule = new MyModule();
// 'test'

myModule.initialVal
// 2