Javascript 模块变量作为方法的输出
我有一个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
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